programing

Python에서 "raise" 키워드를 사용하는 방법

sourcejob 2022. 12. 24. 17:43
반응형

Python에서 "raise" 키워드를 사용하는 방법

저는 "raise"의 공식적인 정의를 읽었지만, 저는 아직도 그것이 무엇을 하는지 잘 모르겠습니다.

간단히 말해서 "상승"이란 무엇입니까?

사용 예제가 도움이 될 것입니다.

두 가지 목적이 있습니다.

잭코그딜이 첫 번째 걸 줬어

자신의 오류를 일으킬 때 사용합니다.

if something:
    raise Exception('My error!')

두 번째 방법은 예외 핸들러에서 현재 예외를 다시 생성하여 콜스택에서 처리할 수 있도록 하는 것입니다.

try:
  generate_exception()
except SomeException as e:
  if not can_handle(e):
    raise
  handle_exception(e)

raise인수 없이 python 구문을 사용할 수 있습니다.예외를 받고 다시 높인다는 뜻입니다.이 사용법을 사용하는 경우는, 라고 불릴 수 있습니다.

    raise

Python Language Reference에서:

식이 존재하지 않는 경우 raise는 현재 범위에서 활성화되었던 마지막 예외를 다시 발생시킵니다.

한다면raise인수 없이 단독으로 사용한다는 것은 엄격히 재상승에 사용됩니다.다른 예외를 재작성하지 않은 상황에서 실행되면 다음 오류가 표시됩니다.RuntimeError: No active exception to reraise

오류 발생에 사용됩니다.

if something:
    raise Exception('My error!')

몇 가지 예시는 다음과 같습니다.

게다가.raise Exception("message")그리고.raisePython 3는 새로운 형태를 도입했습니다.raise Exception("message") from e예외 체인이라고 불리며 트레이스 백을 사용하여 원래 예외(근본 원인)를 보존할 수 있습니다.

C#의 내부 예외와 매우 유사합니다.

상세정보 : https://www.python.org/dev/peps/pep-3134/

에러 체크의 일부로서 에러를 발생시키기 위해서 사용할 수 있습니다.

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콤비네이션.

언급URL : https://stackoverflow.com/questions/13957829/how-to-use-raise-keyword-in-python

반응형