RUBY
try ~ except ~ else, finally 본문
try ~ except ~ else
try ~ except ~ else
예외가 발생하지 않은 경우 실행하는 구문이다.
else는 except 바로 다음에 와야 하며 except를 생략할 수 없다.
try:
실행할 코드
except:
예외가 발생했을 때 처리하는 코드
else:
예외가 발생하지 않았을 때 실행할 코드
10을 입력된 숫자로 나누고 예외가 발생하지 않으면 계산 결과를 출력
try:
x = int(input('나눌 숫자를 입력하세요: '))
y = 10 / x
except ZeroDivisionError: # 숫자를 0으로 나눠서 에러가 발생했을 때 실행됨
print('숫자를 0으로 나눌 수 없습니다.')
else: # try의 코드에서 예외가 발생하지 않았을 때 실행됨
print(y)
2를 입력하면
나눌 숫자를 입력하세요: 2 (입력)
5.0
2를 입력했으므로 y = 10 / x에서 예외가 발생하지 않는다.
따라서 else의 코드가 실행되고 계산 결과가 출력된다.
0을 입력해서 예외가 발생하면 except의 코드만 실행되고 else의 코드는 실행되지 않는다.
나눌 숫자를 입력하세요: 0 (입력)
숫자를 0으로 나눌 수 없습니다.
finally
예외 발생과 상관없이 항상 실행한다.
finally는 except와 else를 생략할 수 있다.
try:
실행할 코드
except:
예외가 발생했을 때 처리하는 코드
else:
예외가 발생하지 않았을 때 실행할 코드
finally:
예외 발생 여부와 상관없이 항상 실행할 코드
try의 코드가 끝나면 항상 '코드 실행이 끝났습니다.'를 출력
try:
x = int(input('나눌 숫자를 입력하세요: '))
y = 10 / x
except ZeroDivisionError: # 숫자를 0으로 나눠서 에러가 발생했을 때 실행됨
print('숫자를 0으로 나눌 수 없습니다.')
else: # try의 코드에서 예외가 발생하지 않았을 때 실행됨
print(y)
finally: # 예외 발생 여부와 상관없이 항상 실행됨
print('코드 실행이 끝났습니다.')
2를 입력
나눌 숫자를 입력하세요: 2 (입력)
5.0
코드 실행이 끝났습니다.
2를 입력하여 예외가 발생하지 않았으므로 계산 결과가 출력되고, '코드 실행이 끝났습니다.'도 출력된다.
0을 입력
나눌 숫자를 입력하세요: 0 (입력)
숫자를 0으로 나눌 수 없습니다.
코드 실행이 끝났습니다.
숫자를 0으로 나눠서 예외가 발생했지만 finally는 항상 실행되므로 '코드 실행이 끝났습니다.'가 출력된다.
Comments