먼저, 2.5 부터는 try, except, else, finally 를 모두 같이 사용할 수 있게 되었다.
이에 관해 자세한 것은 아래 링크를 참조하면 된다.
PEP 341: Unified try/except/finally
그리고 except 를 사용할 때 예외 값을 전달하기 위해 콤마를 사용 했는데, 이 부분에서 콤마가 아닌 as 를 사용하는 것으로 바뀌었다. 책에 나와 있는 예제(p.481) 를 바꾸면
try : f() except Exception as a : ...로 바뀌었다. 2.6 까지는 콤마와 as 를 모두 혼용 사용 가능하지만 3.0 부터는 as 만 사용이 가능하다.
위와 같이 바뀐 이유는 아래 달아둔 링크를 참조하면 되는데, 위 예문을 사용하면
try : f() except (Exception, a) : ...도 잘 작동한다는 것이다. 즉, except 구문에서 Exception, a 나 (Exception, a) 모두 같은 의미이다.
그런데 만약 링크의 예제처럼 에러를 두개 잡는다고 하면 왼쪽 것은 쓸 수가 없다. 따라서 as 가 사용되는 것이다.
더 자세한 것은 아래 링크를 참조하면 된다.
PEP 3110: Exception-Handling Changes
추가적으로 큰 문제는 되지 않지만 예외 클래스의 계층 구조도 바뀌었다. 이 것은 아래 링크에서 참조하면 된다.
PEP 352: Exceptions as New-Style Classes
댓글 없음:
댓글 쓰기