What is catch block?
A catch block in C # is an optional block of code that executes when an exception is thrown.
Catch-Block is a specific part of the exception handling construct and is implemented using the keyword 'catch' in combination with the keywords 'try' and 'finally' and forms the means to implement structured exception handling. A try block contains the monitored code that can cause the exception. It contains statements that address extraordinary circumstances and work to recover from such unexpected conditions.
Catch-Block is the means of handling exceptions. If these are not dealt with, this can lead to the termination of the entire program by the .NET runtime. A catch block can be used to handle any or specific exceptions.
The common language runtime (CLR) exception handling model allows for more than one catch block, each of which is designed for a specific exception. When an exception occurs, the CLR looks for the catch block that will handle the exception. If the currently executing method does not contain such a block, the CLR looks for the call stack in the method that called the current method. If a matching clause for this exception is not found in all of the code, the thread will terminate and the user will be presented with an unhandled exception message.
Here are some tips for using a catch block:
The exception type only needs to be specified for the catch block after the reason for the occurrence of certain non-feasible exceptions (such as catastrophic system failure,
API abuse etc) was detected and recovery was implemented without leaving the application inconsistent with invalid status.
The catch block should be positioned so that the more specific exceptions must be caught before the less specific ones.
Catch block with no parameters is known as 'food exceptions' because it can suppress serious problems that are difficult to debug.
The catch block can be centralized so that it can handle the exception from a central location.
The 'throw' statement can be used within the catch block, where the same exception object that was passed in throw can be passed again when it is raised again.
Variables declared in a try block cannot be used outside of it.
After the catch block has been executed, the code is no longer returned to the try block.
Testing the exception handler code in the catch block is essential to avoid damaging the application.
Catch block should not be used for cleanup code.
Catch block without parameters cannot be used for handling non-Common Language System-compliant exceptions (which are not derived from System.Exception).