Python try except else 사용 설명

3075 단어 Pythontryexceptelse
원래의try except 구조를 바탕으로Python 이상 처리 메커니즘은else 블록을 제공했다. 즉, 원래의try except 문장을 바탕으로else 블록, 즉try exceptelse 구조를 추가했다.
else 패키지의 코드를 사용하면try 블록이 어떤 이상을 포착하지 않았을 때만 실행됩니다.반대로try 블록이 이상을 포착하면 대응하는 except를 호출하여 이상을 처리하더라도else 블록의 코드가 실행되지 않습니다.
예:

try:
  result = 20 / int(input(' :'))
  print(result)
except ValueError:
  print(' ')
except ArithmeticError:
  print(' ,  0')
else:
  print(' ')
print(" ")
기존의 try except를 바탕으로 우리는else 블록을 추가한 것을 볼 수 있습니다.이 프로그램을 실행하려면 다음과 같이 하십시오.
나머지를 입력하십시오: 4
5.0
이상 없음
계속 실행
위에서 보듯이 우리가 정확한 데이터를 입력할 때try 블록의 프로그램은 정상적으로 실행되고,Python 해석기는try 블록의 프로그램을 실행한 후에else 블록의 프로그램을 계속 실행하고 후속 프로그램을 실행합니다.
독자들은Python 해석기가 순서대로 코드를 실행하는 이상else 블록은 어떤 존재가 필요하냐고 물어볼 수도 있다.else 블록의 코드를try except 블록 뒤에 직접 작성하는 것은 같지 않습니까?
물론 다르다. 이제 위의 코드를 다시 실행한다.
나머지를 입력하십시오: a
정수를 입력해야 합니다.
계속 실행
우리가 불법 입력을 시도할 때 프로그램에 이상이 발생하고try에 포착되며,Python 해석기는 상응하는 except 블록을 호출하여 이 이상을 처리합니다.그러나 이상 처리가 끝난 후에Python 해석기는else 블록의 코드를 이어서 실행하지 않고else를 건너뛰고 후속 코드를 실행합니다.
즉,else의 기능은try 블록이 이상을 포착할 때만 나타난다.이런 상황에서else 블록의 코드는 실행할 기회를 얻지 못한다.만약에 우리가 직접else 블록을 제거하면 그 코드를try except 뒤로 작성합니다.

try:
  result = 20 / int(input(' :'))
  print(result)
except ValueError:
  print(' ')
except ArithmeticError:
  print(' ,  0')
print(' ')
print(" ")
프로그램 실행 결과:
나머지를 입력하십시오: a
정수를 입력해야 합니다.
이상 없음
계속 실행
알 수 있듯이else 블록을 사용하지 않으면try 블록이 이상을 포착하고 except를 통해 성공적으로 처리되면 후속 모든 프로그램이 순서대로 실행됩니다.

python try except else finally 실례


class AError(Exception):
  """AError---exception"""
  print('AError')

class BError(Exception):
  """BError---exception"""
  print('BError')

try:
  # raise AError
  # raise BError
  aaaaa()
except AError:
  print("Get AError")
except BError:
  print("Get BError")
except:
  print("Get Exception")
else:
  print("do else")
finally:
  print("finally")
1. 위에서 보여준 전체 문장에서try/except/else/finally가 나타나는 순서는try-->exceptX->except-->else-->finally입니다. 즉, 모든 except는else와finally 전에,else(있다면)는finally 전에,exceptX는except 전에 해야 합니다.그렇지 않으면 문법 오류가 발생할 수 있습니다.
2. 위의 전체 문장에서else문장의 존재는 except X 또는 except문장을 전제로 해야 하며, except문장이 없는tryblock에서else문장을 사용하면 문법 오류를 일으킬 수 있습니다.즉,else는try/finally와 협조하여 사용할 수 없습니다.
3.try가else에 성공하고 대응하는 except에 성공하지 못함;
4. except X가 성공하든 안 되든 except의 판정 문장은 실행되지만 들어가지 않습니다.상기 프로그램에 대응하는 것은 어떤 경우에도 AError Berror가 인쇄하지만, Get AError Get Berror는 대응하는 이상을 던질 때만 인쇄합니다.
5.finally는 모든 상황을 실행합니다. 쓰지 않아도 됩니다. 쓰면 모든 exceptelse 등 뒤에 해야 합니다.
이 Python try exceptelse 사용에 대한 상세한 설명은 여기까지입니다. 더 많은 Python try exceptelse 내용은 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기