함수 A가 ValueError를 던질 수 있도록 오류가 호출 스택을 확장합니까?
시도해 보겠습니다.
는
def a():
try:
b()
except ValueError:
print("Caught a value error in `a`.")
def b():
c()
def c():
raise ValueError
a()
결과 : 오류가 길 호출 스택을 만드는 것처럼
Caught a value error in `a`.
네는 보인다.
함수 C에서만 정의 된 예외를 만들면 함수 A가 동일한 오류를 발생시킬 수 있도록 호출 스택도 올라갈 수 있습니까?
시도해 보겠습니다.
def a():
try:
b()
except:
print("Caught some kind of exception in `a`.")
def b():
c()
def c():
class MyCustomException(Exception):
pass
raise MyCustomException
a()
결과 :
Caught some kind of exception in `a`.
네는, 사용자 정의 예외도 자신의 길 호출 스택을합니다. 하지만 에서 except MyCustomException:
을 수행 할 수 없으므로 그 이름은 c
에만 존재합니다. 이러한 이유로 실제적인 경우 전역 클래스에서 클래스를 선언하십시오.
시도해 보셨습니까? –
여기 물어 본 것은 당신이 스스로 확인할 수있는 간단한 것입니다. – itzMEonTV
예외 개념이 스택 위로 전달되지 않고 어떻게 작동하는지 궁금합니다. –