Exception
try...except...else...finally
def calc(values):
sum = None
# try...except...else
try:
sum = values[0] + values[1] + values[2]
except IndexError as err:
print('인덱스에러')
except Exception as err:
print(str(err))
else:
print('에러없음')
finally:
print(sum)
def calc(values):
sum = None
try:
sum = values[0] + values[1] + values[2]
except (IndexError, ValueError):
print('오류발생')
print(sum)
에러 발생 및 회피
# pass 를 사용한 예
try:
check()
except FileExistsError:
pass
# raise 를 사용한 예
if total < 0:
raise Exception('Total Error')
파일 처리 예제
전형적인 파일 에러 처리를 보여주는 코드 finally 위치가 저기 있는 것이 맞는가?
try: fp = open("test.txt", "r") try: lines = fp.readlines() print(lines) finally: fp.close() except IOError: print('파일에러')
with 문을 써서 해당 블럭이 끝나면 자동으로 파일을 닫는 코드의 예 Python의 with 문은 C#의 using 문과 비슷한 것으로 with 블럭이 끝날 때 자동으로 리소스를 해제하는 역활을 하는데, 특히 주목할 점은 with 블럭 내에서 어떤 Exception이 발생하더라도 반드시 리소스를 해제한다는 점이다.
with open('test.txt', 'r') as fp: lines = fp.readlines() print(lines)