43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								title: Error Handling
							 | 
						|||
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								# C++ Exception Handling
							 | 
						|||
| 
								 | 
							
								An exception is a problem that arises during the execution of a program.Exceptions provide a way to transfer control from one part of a program to another. C++ exception handling is built upon three keywords: #try, #catch, and #throw.
							 | 
						|||
| 
								 | 
							
								* #throw − A program throws an exception when a problem shows up. This is done using a throw keyword.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								* #catch − A program catches an exception with an exception handler at the place in a program where you want to handle the problem. The catch keyword indicates the catching of an exception.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								* #try − A try block identifies a block of code for which particular exceptions will be activated. It's followed by one or more catch blocks.
							 | 
						|||
| 
								 | 
							
								```CPP
							 | 
						|||
| 
								 | 
							
								#include <iostream>
							 | 
						|||
| 
								 | 
							
								using namespace std;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								int main()
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								   int x = -1;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   // Some code
							 | 
						|||
| 
								 | 
							
								   cout << "Before try \n";
							 | 
						|||
| 
								 | 
							
								   try {
							 | 
						|||
| 
								 | 
							
								      cout << "Inside try \n";
							 | 
						|||
| 
								 | 
							
								      if (x < 0)
							 | 
						|||
| 
								 | 
							
								      {
							 | 
						|||
| 
								 | 
							
								         throw x;
							 | 
						|||
| 
								 | 
							
								         cout << "After throw (Never executed) \n";
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								   }
							 | 
						|||
| 
								 | 
							
								   catch (int x ) {
							 | 
						|||
| 
								 | 
							
								      cout << "Exception Caught \n";
							 | 
						|||
| 
								 | 
							
								   }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   cout << "After catch (Will be executed) \n";
							 | 
						|||
| 
								 | 
							
								   return 0;
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# Before you go on...
							 | 
						|||
| 
								 | 
							
								## A review
							 | 
						|||
| 
								 | 
							
								* Grouping of Error Types.
							 | 
						|||
| 
								 | 
							
								* Separation of Error Handling code from Normal Code.
							 | 
						|||
| 
								 | 
							
								* Functions/Methods can handle any exceptions they choose.
							 |