긴 제목으로 불편을 끼쳐 드려 죄송합니다. 그러나 제 질문에 대해 가장 잘 설명하는 것으로 보입니다.주어진 라이브러리 함수가 파이썬에서 발생하는 모든 예외 목록을 어떻게 찾을 수 있습니까?
기본적으로 공식적인 python 문서에서 예외 정보를 찾는 데 어려움을 겪고 있습니다. , 잘 작동 한 나는 TMP// 쓰기 액세스를 가지고, 충분한 디스크 공간이
from shutil import move
move('somefile.txt', '/tmp/somefile.txt')
예를 들어, 하나 개의 프로그램에서 내가 현재 쓰고 있어요, 나는 또 shutil libary의 이동 기능을 사용하고 있습니다 다른 모든 요구 사항이 충족되는 경우 일반적인 코드를 작성할 때
는 그러나, 이러한 요인을 보장하는 것이 어렵다, 그래서 하나는 일반적으로 예외를 사용
from shutil import move
try:
move('somefile.txt', '/tmp/somefile.txt')
except:
print 'Move failed for some reason.'
실제로 대신 모든 것을 잡는 던져 적절한 예외를 포착하고 싶습니다를하지만 대부분의 파이썬 모듈에서 던져진 예외 목록을 찾을 수 없습니다. 주어진 함수가 어떤 예외를 던질 수 있는지, 그리고 왜 예외인지를 알 수있는 방법이 있습니까? 이 방법은 내가 각 예외에 대한 적절한 사례를 만들 수 있습니다, 예를 들면 :
from shutil import move
try:
move('somefile.txt', '/tmp/somefile.txt')
except PermissionDenied:
print 'No permission.'
except DestinationDoesNotExist:
print "/tmp/ doesn't exist"
except NoDiskSpace:
print 'No diskspace available.'
대답 포인트는 어떻게 든 공식 문서에서 간과 한 몇 가지 관련 문서 나 링크, 또는 확실한을 제공 할 수 있습니다 누구든지로 이동 방법으로 예외가 어떤 함수에 의해 던져 졌는지 정확하게 파악할 수 있습니다. 이유는 무엇입니까?
감사합니다.
업데이트 : : 특정 기능에 의해 어떤 오류가 발생하는지 파악하는 방법은 100 % 간단하지 않습니다. 메타 프로그래밍을 사용하면 단순한 사례를 찾아 낼 수 있고 몇 가지 예외를 나열 할 수있는 것처럼 보입니다. 그러나 이것은 특히 유용하거나 편리한 방법은 아닙니다.
저는 궁극적으로 각 파이썬 함수에 의해 발생되는 예외를 정의하는 표준이있을 것이며이 정보는 공식 문서에 포함될 것이라고 생각하고 싶습니다. 그때까지는 가장 예외적 인 일처럼 보이기 때문에 예외를 통과시키고 사용자에게 오류를 허용 할 것입니다.
, I 돈 : 여기
는 AST 걸을 수있는 코드입니다, 그냥 네 책의 갱에서 "방문자 패턴"을 구현하는 워커를 만들compiler.visitor
인터페이스를 사용 확실하게 말할 수있는 경험이 있지만, Java의'throws '와 동등한 점은 유형에 대한 함수 매개 변수 테스트 (함수가 오리 유형 반복 가능을 처리 할 수있는 경우)가 적합하지 않음을 느낍니다. – msw