예외는 프로그램 명령의 정상적인 흐름을 방해하는 프로그램 실행 중에 발생하는 이벤트입니다. 일반적으로 Python 스크립트는 대처할 수 없는 상황에 직면하면 예외가 발생합니다. 예외는 오류를 나타내는 Python 개체입니다.
Python 스크립트에서 예외가 발생하면 즉시 예외를 처리해야 합니다. 그렇지 않으면 종료되고 종료됩니다.
예외 처리
예외를 일으킬 수 있는 의심스러운 코드가 있는 경우 시도에 의심스러운 코드를 배치하여 프로그램을 방어할 수 있습니다. :차단하다. try:블록 뒤에 except를 포함합니다. :문 다음에 가능한 한 우아하게 문제를 처리하는 코드 블록이 옵니다.
구문
다음은 try....except...else 블록의 간단한 구문입니다. -
try: You do your operations here; ...................... except ExceptionI: If there is ExceptionI, then execute this block. except ExceptionII: If there is ExceptionII, then execute this block. ...................... else: If there is no exception then execute this block.
다음은 위에서 언급한 구문에 대한 몇 가지 중요한 사항입니다 -
- 하나의 try 문은 여러 개의 except 문을 가질 수 있습니다. 이는 try 블록에 다양한 유형의 예외를 throw할 수 있는 문이 포함된 경우에 유용합니다.
- 모든 예외를 처리하는 일반 예외 절을 제공할 수도 있습니다.
- except 절 뒤에 else 절을 포함할 수 있습니다. else 블록의 코드는 try:블록의 코드에서 예외가 발생하지 않으면 실행됩니다.
- else-block은 try:블록의 보호가 필요하지 않은 코드에 적합합니다.
예
이 예제는 파일을 열고, 파일에 내용을 쓰고, 전혀 문제가 없기 때문에 정상적으로 나옵니다 -
#!/usr/bin/python try: fh = open("testfile", "w") fh.write("This is my test file for exception handling!!") except IOError: print "Error: can\'t find file or read data" else: print "Written content in the file successfully" fh.close()
출력
이것은 다음 결과를 생성합니다 -
Written content in the file successfully
예
이 예제는 쓰기 권한이 없는 파일을 열려고 하므로 예외가 발생합니다 -
#!/usr/bin/python try: fh = open("testfile", "r") fh.write("This is my test file for exception handling!!") except IOError: print "Error: can\'t find file or read data" else: print "Written content in the file successfully"
출력
이것은 다음 결과를 생성합니다 -
Error: can't find file or read data
예외가 없는 예외 조항
다음과 같이 정의된 예외 없이 예외 문을 사용할 수도 있습니다. -
try: You do your operations here; ...................... except: If there is any exception, then execute this block. ...................... else: If there is no exception then execute this block.
이러한 종류의 시도 제외 문은 발생하는 모든 예외를 포착합니다. 이런 종류의 try-except 문을 사용하는 것은 모든 예외를 포착하지만 프로그래머가 발생할 수 있는 문제의 근본 원인을 식별하지 못하게 하기 때문에 좋은 프로그래밍 방법으로 간주되지 않습니다.
여러 예외가 있는 예외 절
다음과 같이 여러 예외를 처리하기 위해 동일한 예외 문을 사용할 수도 있습니다. -
try: You do your operations here; ...................... except(Exception1[, Exception2[,...ExceptionN]]]): If there is any exception from the given exception list, then execute this block. ...................... else: If there is no exception then execute this block.
마침내 절
마침내를 사용할 수 있습니다. :시도와 함께 차단 :차단하다. finally 블록은 try 블록에서 예외가 발생했는지 여부에 관계없이 실행해야 하는 모든 코드를 넣는 곳입니다. try-finally 문의 구문은 다음과 같습니다. -
try: You do your operations here; ...................... Due to any exception, this may be skipped. finally: This would always be executed. ......................
else 절은 finally 절과 함께 사용할 수 없습니다.
예
#!/usr/bin/python try: fh = open("testfile", "w") fh.write("This is my test file for exception handling!!") finally: print "Error: can\'t find file or read data"
출력
쓰기 모드에서 파일을 열 수 있는 권한이 없으면 다음과 같은 결과가 나타납니다.
Error: can't find file or read data
다음과 같이 같은 예를 더 깔끔하게 작성할 수 있습니다. -
예
#!/usr/bin/python try: fh = open("testfile", "w") try: fh.write("This is my test file for exception handling!!") finally: print "Going to close the file" fh.close() except IOError: print "Error: can\'t find file or read data"
try 블록에서 예외가 발생하면 실행이 즉시 finally 블록으로 전달됩니다. finally 블록의 모든 명령문이 실행된 후 예외가 다시 발생하고 try-except 문의 다음 상위 계층에 있는 경우 예외 명령문에서 처리됩니다.