Python에서 Try, Except, else 및 finally
예외(Exception)는 프로그램 실행 중에 발생하는 예상치 못한 이벤트입니다. 그것은 또한 런타임 에러 . 해당 오류가 발생하면, 파이썬 실행 중에 예외를 생성하고 이를 처리할 수 있으므로 프로그램이 중단되는 것을 방지할 수 있습니다.
예: 이 코드에서는 시스템이 숫자를 0으로 나눌 수 없으므로 예외가 발생합니다.
파이썬3
a> => 5> b> => 0> print> (a> /> b)> |
산출
Traceback (most recent call last): File '/home/8a10be6ca075391a8b174e0987a3e7f5.py', line 3, in print(a/b) ZeroDivisionError: division by zero
try, Except, else 및 finally를 사용한 예외 처리
- 노력하다 : 이 블록은 예외 오류가 발생하는지 테스트합니다.
- 제외하고 : 여기에서 오류를 처리할 수 있습니다.
- 또 다른 : 예외가 없으면 이 블록이 실행됩니다.
- 마지막으로 : 마지막으로 블록은 예외가 생성되거나 생성되지 않거나 항상 실행됩니다.
Python Try, Except, else 및 finally 구문
try: # Some Code.... except: # optional block # Handling of exception (if required) else: # execute if no exception finally: # Some code .....(always executed)
'의 작업 노력하다' 그리고 '제외하고'
먼저 어떻게 Python 시도 및 제외 공장
- 첫 번째 노력하다 절이 실행됩니다. 즉, 다음 사이의 코드가 실행됩니다. 노력하다 그리고 제외하고 절.
- 예외가 없다면 단지 노력하다 조항이 실행됩니다. 제외하고 절이 실행되지 않습니다.
- 예외가 발생하면 노력하다 절을 건너뛰고 제외하고 조항이 실행됩니다.
- 예외가 발생하는 경우, 그러나 제외하고 코드 내의 절은 이를 처리하지 않고 외부로 전달됩니다. 노력하다 진술. 예외가 처리되지 않은 채로 남아 있으면 실행이 중지됩니다.
- ㅏ 노력하다 명령문은 둘 이상을 가질 수 있습니다 제외하고 절.
예: 사용자 정수 입력을 받아 블록을 제외하고 예외를 발생시켜 보겠습니다.
파이썬3
# Python code to illustrate working of try()> def> divide(x, y):> > try> :> > # Floor Division : Gives only Fractional> > # Part as Answer> > result> => x> /> /> y> > print> (> 'Yeah ! Your answer is :'> , result)> > except> ZeroDivisionError:> > print> (> 'Sorry ! You are dividing by zero '> )> > # Look at parameters and note the working of Program> divide(> 3> ,> 2> )> divide(> 3> ,> 0> )> |
산출:
Yeah ! Your answer is : 1 Sorry ! You are dividing by zero
Python에서 여러 예외 잡기
다음은 여러 개의 Except 절을 사용하여 다양한 예외를 처리하는 방법을 보여주는 예입니다.
파이썬3
try> :> > x> => int> (> input> (> 'Enter a number: '> ))> > result> => 10> /> x> except> ZeroDivisionError:> > print> (> 'You cannot divide by zero.'> )> except> ValueError:> > print> (> 'Invalid input. Please enter a valid number.'> )> except> Exception as e:> > print> (f> 'An error occurred: {e}'> )> |
산출:
Enter a number: An error occurred: EOF when reading a line
Python의 Else 절
코드는 try 절에서 예외가 발생하지 않는 경우에만 else 블록에 들어갑니다.
예: Else 블록이 실행됩니다. 예외가 발생하지 않는 경우에만 .
파이썬3
# Python code to illustrate working of try()> def> divide(x, y):> > try> :> > # Floor Division : Gives only Fractional> > # Part as Answer> > result> => x> /> /> y> > except> ZeroDivisionError:> > print> (> 'Sorry ! You are dividing by zero '> )> > else> :> > print> (> 'Yeah ! Your answer is :'> , result)> > # Look at parameters and note the working of Program> divide(> 3> ,> 2> )> divide(> 3> ,> 0> )> |
산출:
Yeah ! Your answer is : 1 Sorry ! You are dividing by zero
Python finally 키워드
Python은 키워드를 제공합니다 마지막으로 , 이는 항상 실행 try 및 블록 제외 후. finally 블록은 항상 try 블록이 정상적으로 종료된 후 또는 일부 예외로 인해 try 블록이 종료된 후에 실행됩니다. Except 블록으로 돌아오더라도 여전히 finally 블록이 실행됩니다.
예: 블록을 제외하고 예외를 던져 보겠습니다. 그러면 마지막으로 예외가 생성되거나 생성되지 않을 것 중 하나가 실행됩니다.
파이썬3
# Python code to illustrate> # working of try()> def> divide(x, y):> > try> :> > # Floor Division : Gives only Fractional> > # Part as Answer> > result> => x> /> /> y> > except> ZeroDivisionError:> > print> (> 'Sorry ! You are dividing by zero '> )> > else> :> > print> (> 'Yeah ! Your answer is :'> , result)> > finally> :> > # this block is always executed> > # regardless of exception generation.> > print> (> 'This is always executed'> )> # Look at parameters and note the working of Program> divide(> 3> ,> 2> )> divide(> 3> ,> 0> )> |
산출:
Yeah ! Your answer is : 1 This is always executed Sorry ! You are dividing by zero This is always executed