Software exception handling and the support provided by software tools differs somewhat from what is understood by exception handling in hardware, but similar concepts are involved. In programming language mechanisms for exception handling, the term "exception" is typically used in a specific sense to denote a data structure storing information about an exceptional condition. One mechanism to transfer control, or "raise" an exception, is known as a "throw". The exception is said to be "thrown". Execution is transferred to a "catch".