Python BaseException에서 상속하지 마십시오. 이유는 다음과 같습니다.
2283 단어 python
.py
파일에서 이 예제를 직접 실행하고 control-c로 종료해 보십시오.Keybard 인터럽트를 할 수 없습니다
KeyboardInterrupt
등은 BaseException
를 상속받은 예외로 생성되기 때문에 BaseException
를 제외하면 더 이상KeyboardInterrupt
.from time import sleep
while True:
try:
sleep(30)
except BaseException: # ❌
pass
Exception 이상 제외
예외에서 제외하거나 예외에서 상속하는 것보다 나은 경우 의도하지 않은 부작용을 피하는 것이 좋습니다.
from time import sleep
while True:
try:
sleep(30)
except Exception: # ✅
pass
이것은 사용자 지정 예외에도 적용됩니다.
사용자 정의 예외를 만들 때 사용자 또는 팀 구성원이 예외를 포착하고 가능하면 처리하려고 할 것입니다. 에서 상속하는 경우
BaseException
그들이 당신의커스텀 예외.
class MyFancyException(BaseException): # ❌
...
class MyFancyException(Exception): # ✅
...
Reference
이 문제에 관하여(Python BaseException에서 상속하지 마십시오. 이유는 다음과 같습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/waylonwalker/dont-inherit-from-python-baseexception-heres-why-1p4d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)