[python] 점프 투 파이썬 공부 - 예외처리

Jean Young Park·2022년 6월 29일
0

python

목록 보기
13/15

오류 예외 처리 기법

  • try, except문
try:
	...
except [발생 오류[as 오류 메시지 변수]]:
	...
  1. try, except만 쓰는 방법
    오류 종류에 상관 없이 오류가 발생하면 except 블록을 수행

    try:
    
    	...
    except:
    	...
  2. 발생 오류만 포함한 except문

    try:
    	...
    except 발생 오류:
    	...
  3. 발생 오류와 오류 메시지 변수까지 포함한 except문

    try:
    	...
    except 발생 오류 as 오류 메시지 변수:
    	...
  • try...finally
    예외 발생 여부에 상관없이 항상 수행된다.

오류 회피하기

오류가 발생할 경우 그냥 통과시켜야 할 때

try:
	f = open("나없는파일", 'r')
except FileNotFoundError:
	pass

오류 일부러 발생시키기

class Bird:
	def fly(self):
    	raise NotImplementedError

Bird 클래스를 상속받는 자식 클래스는 반드시 fly함수를 구현해야한다는 뜻의 fly함수이다.

예외 만들기

내장 클래스 Exception 클래스를 상속하여 만들 수 있다.

class My
Error(Exception):
	pass

사용방법은 아래와 같다

try:
	say_nick("천사")
    say_nick("바보")
except MyError:
	print("허용되지 않는 별명입니다.")

만약 오류 메세지를 사용하고 싶다면 아래와 같이 사용할 수 있다.

try:
	say_nick("천사")
    say_nick("바보")
except MyError as e:
	print(e)

하지만 실행해보면 오류 메시지가 출력되지 않는데 보이게 하려면 오류 클래스에 다음과 같은 __str__ 메서드를 구현해야 한다. __str__메서드는 print(e)처럼 오류 메시지를 print문으로 출력할 경우에 호출되는 메서드이다.

class MyError(Exception):
	def \_\_str\_\_(seld):
    	return "허용되지 않는 별명입니다."

0개의 댓글