logo

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>