Как использовать ключевое слово "raise" в Python [дубликат]
этот вопрос уже есть ответ здесь:
Вручную поднимая (бросая) исключение в Python
5 ответов
Я прочитал официальное определение "поднять", но я все еще не совсем понимаю, что он делает.
проще говоря, что такое "поднять"?
пример использования поможет.
6 ответов:
Он имеет 2 цели.
Он используется для повышения ваших собственных ошибок.
if something: raise Exception('My error!')во-вторых, чтобы reraise настоящее исключение в обработчике исключений, чтобы его можно было обрабатывать дальше по стеку вызовов.
try: generate_exception() except SomeException as e: if not can_handle(e): raise handle_exception(e)
Он используется для сбора ошибок.
if something: raise Exception('My error!')примеры здесь
raiseбез каких-либо аргументов-это специальное использование синтаксиса Python. Это означает получить исключение и повторно поднять его. Если это использование можно было бы назватьreraise.raiseесли нет выражений, raise повторно вызывает последнее исключение, которое был активен в текущей области.
если
raiseиспользуется отдельно без каких-либо аргументов строго используется для reraise - ing. Если это сделано в ситуации, которая не находится в reraise другого исключения, отображается следующая ошибка:RuntimeError: No active exception to reraise
вы можете использовать его, чтобы вызвать ошибки в рамках проверки ошибок:
if (a < b): raise ValueError()или обрабатывать некоторые ошибки, а затем передавать их как часть обработки ошибок:
try: f = open('file.txt', 'r') except IOError: # do some processing here # and then pass the error on raise
raiseприводит к возникновению исключения. В некоторых других языках вместо этого используется глагол 'throw'.Он предназначен для сигнализации об ошибке ситуации; он отмечает, что ситуация является исключительной для нормального потока.
поднятые исключения могут быть снова пойманы кодом "вверх по течению" (окружающий блок или функция ранее в стеке), чтобы обработать его, используя
try,exceptкомбинации.
кроме того
raise Exception("message")иraisePython 3 представил новую форму,raise Exception("message") from e. Это называется цепочкой исключений, она позволяет сохранить исходное исключение (первопричину) с его трассировкой.Это очень похоже на внутренние исключения из C#.
Подробнее: https://www.python.org/dev/peps/pep-3134/
Comments