본문 바로가기

Python

[Python] 예외처리

Python에는 Java의 try-catch문과 같은 

예외처리 기능을 하는 코드가 있는데요.

한 번 알아보겠습니다.

먼저 try입니다.

Java에서는 try-catch가 쌍으로 쓰이듯이

Python에서는 try가 catch대신

except와 쓰입니다.

코드를 살펴볼까요?

 

try:
    a = int(input("첫번째 숫자 : "))
    b = int(input("두번째 숫자 : "))
    result = a // b
    print("몫은 %d" % result)
   
   
    l = [1, 23, 456]
    print(l[b])
except ZeroDivisionError:
  print("y에 0? 이거 맞습니까")
# except IndexError:
#     print("list에 없음")

 

try안에 실행할 코드를 넣고

에러가 발생하면 except문을 실행하는데

except뒤에 해당 에러에 해당하는 이름을 적어줘야합니다.

여기서는 ZeroDivisionError를 적어주었는데

무언가를 0으로 나눴을 때 발생하는 에러이며,

에러가 발생하면 해당 except안에 있는 코드를 실행합니다.

외에도 여러가지 에러가 있는데

에러를 한 번에 처리하는 방법도 있습니다.

 

except Exception as asdf:  #모든 에러
    print(asdf)            #무슨 내용인지 알고 싶을 때

 

Exception이라는 객체에는 에러의 내용이 들어가는데

as를 사용해서 해당 에러의 내용을 출력할 수도 있습니다.

 

 

이런 식으로 에러의 내용이 담긴 print문이 출력되게 됩니다.

 

else:
    print("문제가 없으면 실행")

 

그리고 else라는 구문이 있는데

else는 문제가 없으면 실행되는 코드이고

사용되는 이유는 단순히 성능적인 것을 넘어서

에러가 발생할 가능성이 있는 부분과 그렇지 않은 부분을

정확히 구분을 지어서 작성자의 의도를 명확하게 하기 위함입니다.

 

마지막으로 finally는 기존 Java의 finally와 똑같이

문제가 있든 없든 실행되는 코드입니다.

 

finally:
    print("문제가 있든 없든 무조건 실행(return보다 먼저)")

'Python' 카테고리의 다른 글

[Python] Datetime  (0) 2025.03.06
[Python] f-string  (0) 2025.03.06
[Python] 다중 상속  (0) 2025.03.06
[Python] 상속과 오버라이딩  (0) 2025.03.06
[Python] Class  (0) 2025.03.05