<질문>
나는 "상승"의 공식 정의를 읽었지만 여전히 그것이 무엇을 하는지 잘 이해하지 못합니다.
간단히 말해서 "상승"이란 무엇입니까?
예제 사용법이 도움이 될 것입니다.
<답변1>
두 가지 목적이 있습니다.
jackcogdill has given the first one:
자신의 오류를 제기하는 데 사용됩니다. 어떤 경우: 예외 발생('내 오류!')
두 번째는 재도전이다.현재 호출 스택에서 더 많이 처리될 수 있도록 예외 처리기에서 예외를 처리합니다.
try:
generate_exception()
except SomeException as e:
if not can_handle(e):
raise
handle_exception(e)
<답변2>
raise
인수가 없는 것은 파이썬 구문의 특별한 사용입니다. 예외를 가져와 다시 발생시키는 것을 의미합니다. 이 사용법이 호출 될 수 있다면재상승
.
raise
에서The Python Language Reference:
식이 없으면, raise는 마지막 예외를 다시 발생시킵니다. 현재 범위에서 활동했습니다.
만약에raise
인수 없이 단독으로 사용재상승-잉. 다른 예외가 다시 발생하지 않는 상황에서 수행되면 다음 오류가 표시됩니다.
RuntimeError: No active exception to reraise
<답변3>
오류를 발생시키는 데 사용됩니다.
if something:
raise Exception('My error!')
몇 가지 예here
<답변4>
게다가raise Exception("message")
그리고raise
Python 3은 새로운 형식을 도입했습니다.raise Exception("message") from e
. 이를 예외 체이닝이라고 하며, 이를 통해 역추적을 통해 원래 예외(근본 원인)를 보존할 수 있습니다.
C#의 내부 예외와 매우 유사합니다.
더 많은 정보: https://www.python.org/dev/peps/pep-3134/
<답변5>
오류 검사의 일부로 오류를 발생시키는 데 사용할 수 있습니다.
if (a < b):
raise ValueError()
또는 일부 오류를 처리한 다음 오류 처리의 일부로 전달합니다.
try:
f = open('file.txt', 'r')
except IOError:
# do some processing here
# and then pass the error on
raise
<답변6>
raise
예외가 발생합니다. 일부 다른 언어에서는 '던지다'라는 동사를 대신 사용합니다.
오류 상황을 알리기 위한 것입니다. 상황이 정상적인 흐름에 예외적임을 표시합니다.
발생한 예외는 코드 '업스트림'(주변 블록 또는 스택의 이전 함수)에서 다시 catch하여 처리할 수 있습니다.try
,except
콤비네이션.
'개발 > Python' 카테고리의 다른 글
[파이썬] 딕셔너리에 키워드 매개 변수로 함수 전달 (0) | 2022.10.22 |
---|---|
[파이썬] 일반 인수 vs 키워드 인수 (0) | 2022.10.13 |
[파이썬] Openpyxl 행열 배경색 변경 Attribute 오류 (1) | 2022.10.13 |
[파이썬] Requests - No connection adapters 오류 (1) | 2022.10.13 |