본문 바로가기
프로그래밍/Python

[Python]파이썬 try except 예외처리

by wyatti 2023. 5. 8.

.

try 블록 안에는 예외가 발생할 가능성이 있는 코드를 작성합니다. except 블록은 try 블록 안에서 발생한 예외 중 해당하는 예외종류가 발생한 경우 실행됩니다. except 블록은 여러 개를 작성할 수 있으며, 각각의 블록은 서로 다른 예외종류를 처리할 수 있습니다. else 블록은 예외가 발생하지 않은 경우 실행됩니다. finally 블록은 예외 발생 여부와 상관없이 항상 실행되어야 하는 코드를 작성할 때 사용됩니다.
파이썬 try except 예외처리 구문

파이썬에서 예외 처리는 프로그래밍에서 매우 중요한 부분입니다. 예외 처리는 코드에서 예기치 않은 상황이 발생했을 때, 프로그램이 죽지 않도록 처리하는 방법입니다. 파이썬에서 예외 처리는 try-except 구문을 사용하여 이루어집니다. try 블록 내에서 예외가 발생하면, except 블록에서 해당 예외를 처리하고 프로그램을 계속 실행할 수 있도록 합니다. 이러한 예외 처리를 통해, 프로그램이 예외 상황에 대처할 수 있게 되어 더욱 안정적인 프로그램을 만들 수 있습니다.

 

 

 

파이썬 try except 예외처리 구문

파이썬에서 try-except 구문은 다음과 같이 작성됩니다.

try:
    # 예외가 발생할 수 있는 코드
except 예외종류1:
    # 예외종류1이 발생한 경우 실행할 코드
except 예외종류2:
    # 예외종류2가 발생한 경우 실행할 코드
else:
    # 예외가 발생하지 않은 경우 실행할 코드
finally:
    # 항상 실행되어야 하는 코드

try 블록 안에는 예외가 발생할 가능성이 있는 코드를 작성합니다. except 블록은 try 블록 안에서 발생한 예외 중 해당하는 예외종류가 발생한 경우 실행됩니다. except 블록은 여러 개를 작성할 수 있으며, 각각의 블록은 서로 다른 예외종류를 처리할 수 있습니다. else 블록은 예외가 발생하지 않은 경우 실행됩니다. finally 블록은 예외 발생 여부와 상관없이 항상 실행되어야 하는 코드를 작성할 때 사용됩니다.

 

 

 

파이썬 try except 예외처리 예제 3가지

 

1.파일 입출력에서 예외 처리하기

파일을 열고 읽거나 쓰는 과정에서는 예외가 발생할 수 있습니다. 이때 try-except 구문을 사용하여 예외를 처리할 수 있습니다.

try:
    with open("file.txt", "r") as f:
        lines = f.readlines()
except FileNotFoundError:
    print("파일이 존재하지 않습니다.")
except PermissionError:
    print("파일을 읽을 권한이 없습니다.")
else:
    for line in lines:
        print(line)

 

 

 

2.URL 열기에서 예외 처리하기

URL을 열 때는 인터넷 연결이 끊겼거나 URL이 잘못된 경우 예외가 발생할 수 있습니다. 이때 try-except 구문을 사용하여 예외를 처리할 수 있습니다.

import urllib.request

try:
    with urllib.request.urlopen("http://www.example.com") as url:
        s = url.read()
except urllib.error.URLError:
    print("URL이 잘못되었거나 인터넷 연결이 끊겼습니다.")
else:
    print(s)

 

 

 

3.숫자 입력에서 예외 처리하기

숫자를 입력받을 때는 사용자가 잘못된 값을 입력할 가능성이 있습니다. 이때 try-except 구문을 사용하여 예외를 처리할 수 있습니다.

while True:
    try:
        num = int(input("정수를 입력하세요: "))
        break
    except ValueError:
        print("정수를 입력해야 합니다.")
print("입력된 숫자는 %d입니다." % num)

댓글