파이썬에서 try-else에 else를 써주는 이유는 뭔가요?
조회수 4477회
어떤 때 try-
문에서 else
를 써줘야 하나요?
밑의 코드 1, 2, 3은 차이가 없어보이는데
try
문에서 에러가 안 생길 때 else
문이 실행되는 거라면
그냥 else
를 안 쓰거나 try
문 밑에 계속 적어주면 되는 거 아닌가요?
소스코드
#1
try:
A = 3
except:
pass #handler
else:
A = 5
#2
try:
A = 3
A = 5
except :
pass #handler
#3
try:
A = 3
except
pass #handler
A = 5
1 답변
-
Handling Exceptions에 따르면
try
문에 추가로 코드를 적는 것보다는else
문을 쓰는 것이 더 나은 방법입니다. 다음의 경우로 설명해드리겠습니다.#코드1 - else문을 쓴 경우 try: open("myfile.txt") except : print "IOError!" else: print "all fine!" n = int(input()) print 1/n #코드2 - try안에 적은 경우 try: open("myfile.txt") n = int(input()) print 1/n except : print "IOError!" else: print "all fine!"
프로그래머는
"myfile.txt"
가 없을 때만 예외처리를 할 의도로 코드를 작성했습니다 하지만 코드2는print 1/n
가try
안에 있기 때문에zeroDivisionError
가 발생할 경우 이 또한 예외처리리 단계로 넘어갑니다. 따라서 코드1 처럼 예외처리를 원하지 않는 코드를else
문 안에 넣어야 우연히 예외처리가 되는 것을 막을 수 있습니다.
댓글 입력