제기 된 객체 (즉, Exception
을 확장하지 않는 유형)를 어떻게 잡을 수 있는지 궁금합니다. 여전히 그것에 대한 참조를 얻습니다.파이썬에서 예외를 잡아 내고 형식을 알지 못하고 예외에 대한 참조를 얻는 방법?
나는 자이 썬을 사용할 때 이렇게하기를 바랬다. Java 메소드를 호출 할 때 그 메소드가 예외가 발생하면, 그것은 파이썬의 Exception
클래스를 확장하지 않으므로이 같은 블록은 그것을 잡을되지 않습니다
try:
# some call to a java lib that raises an exception here
except Exception, e:
# will never be entered
내가이 작업을 수행 할 수 있습니다,하지만 난에 액세스 할 수 없습니다 발생한 예외 객체
try:
# some call to a java lib that raises an exception here
except:
# will enter here, but there's no reference to the exception that was raised
내가 자바 예외 유형을 가져 명시 적으로 그것을 잡는하여이 문제를 해결 할 수 있지만,이 것이 불가능/어려운 일반적인 예외 처리 래퍼/장식을 작성할 수 있습니다
.
임의의 예외를 잡아 내고 여전히 except
블록에 대한 참조를 얻을 수있는 방법이 있습니까?
자이 썬 프로젝트뿐만 아니라 파이썬 프로젝트에서도 사용할 수 있도록 예외 처리 데코레이터를 사용하고 싶습니다.에 주목해야합니다. java.lang.Exception
을 가져 오는 것을 피하고 싶습니다. Jython 전용으로 만들기 때문입니다. 예를 들어, 나는이 같은 것을 할 수 있다고 생각한다. (그러나 나는 그것을 시도하지 않았다.) 할 수 있다면 나는 그것을 피하고 싶다.
try:
# some function that may be running jython and may raise a java exception
except (Exception, java.lang.Exception), e:
# I imagine this would work, but it makes the code jython-only
BaseException에서 파생 적어도 이러한 예외를 수행 잡을 것인가? – Seth