49 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			49 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | |||
|  | title: Error Handling | |||
|  | localeTitle: Обработка ошибок | |||
|  | --- | |||
|  | # Обработка исключений на C ++
 | |||
|  | 
 | |||
|  | Исключением является проблема, возникающая во время выполнения программы. Исключения обеспечивают способ передачи управления из одной части программы в другую. Обработка исключений C ++ построена на трех ключевых словах: #try, #catch и #throw. | |||
|  | 
 | |||
|  | *   # throw - программа выдает исключение, когда возникает проблема. Это делается с использованием ключевого слова throw. | |||
|  |      | |||
|  | *   # catch - программа выхватывает исключение с обработчиком исключений в месте в программе, где вы хотите справиться с этой проблемой. Ключевое слово catch указывает на улавливание исключения. | |||
|  |      | |||
|  | *   #try - блок try идентифицирует блок кода, для которого будут активированы определенные исключения. За ним следует один или несколько блоков catch. | |||
|  |      | |||
|  | 
 | |||
|  | ```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;  | |||
|  |  }  | |||
|  | ``` | |||
|  | 
 | |||
|  | # Прежде чем продолжить ...
 | |||
|  | 
 | |||
|  | ## Обзор
 | |||
|  | 
 | |||
|  | *   Группировка типов ошибок. | |||
|  | *   Разделение кода обработки ошибок из нормального кода. | |||
|  | *   Функции / методы могут обрабатывать любые исключения, которые они выбирают. |