В чем разница между перехватом и обработкой исключения? - PullRequest
0 голосов
/ 12 марта 2010

Я изучаю обработку исключений в python и прочитанное сообщение в блоге, в котором проводится различие между захватом и обработкой исключения. Может ли кто-нибудь объяснить разницу между этими двумя понятиями, особенно в python, и общую концептуальную разницу? Поиск в Google по запросу «обработка исключений» не очень полезен.

Ответы [ 2 ]

2 голосов
/ 12 марта 2010

Я бы сказал, что «перехват» и «перехват» исключения - это одно и то же: вы должны перехватить / перехватить его, чтобы иметь возможность его обработать, но сам процесс перехвата его не совпадает с обработкой.

Trapping-but-not-handling = supressing, другими словами. Обработка подразумевает, что вы действительно что-то делаете с информацией, которая находится в вашем распоряжении: регистрируйте ее, выбрасывайте на следующий уровень, выполняйте некоторые действия, если исключение не является полностью неожиданным и т. Д. И т. Д.

Или, другими словами, перехват исключения означает, что у вас есть кодовая конструкция, в которую будут влиять исключительные обстоятельства и где вы можете выбрать обработку информации, которую найдете там.

0 голосов
/ 12 марта 2010

С точки зрения концептуальной разницы я бы определил Trapping как добавление кода, чтобы ограничить влияние ошибки, распространяющейся на другие части кода или отображаемой ОС для пользователя.

Обработка ошибка будет делать что-то соответствующее в ответ на ошибку.

С позиции псевдокода:

try
  // Something which may cause an error - this is trapped by wrapping in a try/catch
catch
  //  doing something appropriate in response to the error occurring - handle it
finally
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...