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; 
 | 
						||
 } 
 | 
						||
```
 | 
						||
 | 
						||
# Прежде чем продолжить ...
 | 
						||
 | 
						||
## Обзор
 | 
						||
 | 
						||
*   Группировка типов ошибок.
 | 
						||
*   Разделение кода обработки ошибок из нормального кода.
 | 
						||
*   Функции / методы могут обрабатывать любые исключения, которые они выбирают. |