Как использовать ключевое слово "raise" в Python [дубликат]



этот вопрос уже есть ответ здесь:




  • Вручную поднимая (бросая) исключение в Python

    5 ответов



Я прочитал официальное определение "поднять", но я все еще не совсем понимаю, что он делает.



проще говоря, что такое "поднять"?



пример использования поможет.

648   6  

6 ответов:

Он имеет 2 цели.

yentup дал первый.

Он используется для повышения ваших собственных ошибок.

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

С Ссылка На Язык Python:

если нет выражений, 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") и raise Python 3 представил новую форму,raise Exception("message") from e. Это называется цепочкой исключений, она позволяет сохранить исходное исключение (первопричину) с его трассировкой.

Это очень похоже на внутренние исключения из C#.

Подробнее: https://www.python.org/dev/peps/pep-3134/

Comments

    Ничего не найдено.