-
파이썬 | 예외 처리: try-exceptProgramming/Python 2025. 5. 23. 18:00
1. 오류
오류 프로그램을 실행할 때 발생할 수 있는 오류는 크게 ▲문법 오류, ▲논리 오류, ▲실행 오류로 나눌 수 있다. 문법 오류(syntax error)는 들여쓰기를 맞추지 않는 등의 잘못된 문법을 사용했을 때 발생한다. 문법 오류 없이 프로그램을 작성하여 실행하더라도 예상한 결과가 나오지 않을 수 있다. 이를 논리 오류(logical error)라고 하며, 이를 해결하기 위해서는 실행 분기마다 발생할 수 있는 경우의 수를 확인하여 예상하지 못한 경우가 있는지 검토해야 한다. 실행 오류(runtime error)는 사용자가 함수에 잘못된 인자를 입력하거나 존재하지 않는 파일을 불러올 때 발생한다. 문법 오류는 컴파일러가 프로그램 실행 이전에 발견하여 알려주므로 바로 대처할 수 있지만, 논리 오류와 실행 오류와 같이 프로그램 실행 중에 발생하는 예외는 왜 발생하였는지 분석하고 이를 방지하기 위한 코드를 따로 작성해주어야 한다.
2. 예외 처리
예외 처리 예외가 발생하면 실행되던 프로그램이 중단되고 어떤 예외가 발생하였는지 메세지가 출력된다. 만약 예외가 발생하더라도 프로그램이 중단되지 않길 바란다면 예외가 발생했을 때 어떤 프로그램을 실행할지 구분해야 한다. 파이썬은 예외 처리를 위해 try문을 지원하며, 일반적인 형식은 아래 예시와 같다.
try: # 명령문1 number1 = int(input('분자에 해당하는 정수값을 입력하세요: ')) number2 = int(input('분모에 해당하는 정수값을 입력하세요: ')) number3 = number1 / number2 except: # 명령문2 print('[경고] 입력한 값을 확인하세요.') else: # 명령문3 print(f'{number1}(을/를) {number2}(으)로 나눈 결과는 {number3}입니다.') finally: # 명령문4 print('프로그램을 종료합니다.')
try 명령문 쌍점 아래로 들여쓰기 하여 예외가 발생할 가능성이 있는 명령문을 작성한다. try 명령문에 속한 명령문을 실행하는 도중에 예외가 발생하면 곧바로 except 명령문 아래로 들여쓰기가 되어 있는 명령문이 실행되고, 마지막으로 finally 명령문에 속한 명령문이 실행된다. 반면에 try 명령문에 속한 명령문을 실행했을 때 예외가 발생하지 않는다면, else 명령문과 finally 명령문에 속한 명령문이 차례대로 실행된다. 예외 처리에서 try 명령문과 except 명령문은 반드시 있어야 하며, else 명령문과 finally 명령문은 선택 사항이므로 생략할 수 있다.
2.1. 예외 내용 출력
만약 어떤 예외가 발생했는지 구체적으로 확인하고 싶다면 아래 예시와 같이 except 명령문에 예외 종류와 변수를 할당하여 출력하면 된다. 해당 예시에서는 모든 예외 종류를 포괄하는 Exception 예외를 할당하였으며, 예외 내용을 err 변수에 저장하여 문자열로 출력하도록 하였다.
try: number1 = int(input('분자에 해당하는 정수값을 입력하세요: ')) number2 = int(input('분모에 해당하는 정수값을 입력하세요: ')) number3 = number1 / number2 print(f'{number1}(을/를) {number2}(으)로 나눈 결과는 {number3}입니다.') except Exception as err print(f'[경고] {err}')
파이썬은 앞서 언급한 Exception 예외 외에도 ArithmeticError, ValueError, RuntimeError 등 다양한 예외 종류를 지원하고 있으며 계층 구조를 이루고 있다. 아래 링크로 접속하면 어떤 예외 종류가 있는지, 어떤 계층 구조를 이루고 있는지 확인할 수 있다.
Built-in Exceptions
In Python, all exceptions must be instances of a class that derives from BaseException. In a try statement with an except clause that mentions a particular class, that clause also handles any excep...
docs.python.org
[함께 읽으면 좋은 페이지]
파이썬 | 조건문과 반복문(1): if-elif-else, while, for
1. 조건문 조건에 따라 실행하고자 하는 명령문이 다를 때 조건문을 사용한다. 비교 연산자나 논리 연산자를 이용해 조건들의 참과 거짓을 판별하고, 이에 따라 어떤 명령문을 실행할지 결정한
vedacube.tistory.com
파이썬 | 사용자 정의 함수(1): def-return
1. 내장 함수 함수는 일련의 명령문들이 묶여 특정한 명령을 실행하는 단위를 의미한다. 파이썬에서는 특정한 기능을 담당하는 다양한 함수들을 기본적으로 제공하고 있으며, 이를 내장 함수라
vedacube.tistory.com
참고문헌
- 박진수. (2019). 바로 쓰는 파이썬. 서울대학교출판문화원.반응형'Programming > Python' 카테고리의 다른 글
파이썬 | 사용자 정의 함수(2): 매개변수와 전달인자 (0) 2025.06.13 파이썬 | 사용자 정의 함수(1): def-return (1) 2025.06.06 파이썬 | 조건문과 반복문(3): break, continue (0) 2025.05.16 파이썬 | 조건문과 반복문(2): range, enumerate, zip (0) 2025.05.09 파이썬 | 세트 메소드: update, pop, discard (1) 2025.04.25