일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- composelifecycle
- android
- 파이썬문법
- 파이썬
- Provider
- 백준
- programmers
- 백준파이썬
- Java
- 배열
- 자료형
- 리스트
- Dependency
- 자바리스트정렬
- filternotnull()
- 자바
- ContentProvider
- 문자열
- Kotlin
- Python
- jetpack
- 자바set
- disposableeffect
- 오블완
- 프로그래머스
- list
- compose
- Hilt
- 티스토리챌린지
- nullpointerexception방지
- Today
- Total
study gomi
[Python|파이썬] 기본 문법 - 오류, 예외 처리 본문
에러
- 프로그램 실행 중에 발생하는 문제로 크게 두 가지로 나뉨.
- 에러의 종류
- 구문 에러(Syntax Errors): 코드의 문법이 잘못되었을 때 발생(예: 괄호의 불일치, 잘못된 들여쓰기, 잘못된 명령어 사용 등.) 구문 에러는 프로그램이 실행되기 전에 발견 됨.
- 예외(Exceptions): 프로그램이 실행 중일 때 발생하는 에러, 구문 에러와 달리 실행 시점에 문제가 발생. 예외는 파일을 찾을 수 없거나, 네트워크 연결 오류, 0으로 나누기 시도 등 다양한 상황에서 발생.
예외 처리
- 프로그램이 예상치 못한 상황, 즉 예외(Exception)에 직면했을 때 이를 적절히 처리.
- 프로그램의 정상적인 흐름을 유지하기 위한 방법
- 가장 일반적인 예외 처리 구조는 try, except, else, finally 블록을 사용
- 예외 처리를 사용함으로써 프로그램이 예외 상황에서도 더 견고하고 예측 가능하게 동작하도록 만들 수 있다.
- try 문에는 에러가 발생할 가능성이 있는 문장 / except 블록에서 에러 처리 / finally문은 마지막으로 수행. 프로그램의 나머지 부분이 정상적으로 진행됨. / else 블록은 예외가 발생하지 않았을 때만 정상적으로 실행
- try 블록: 이 블록 안에는 예외가 발생할 가능성이 있는 코드를 작성. 예외가 발생하면 즉시 try 블록의 나머지 부분은 실행되지 않고 해당 예외에 맞는 except 블록으로 제어가 이동.
- except 블록: 여기서 특정 예외를 처리. 여러 개의 except 블록을 사용하여 다양한 예외를 다르게 처리할 수 있다. 예외의 종류를 지정하지 않으면 모든 종류의 예외를 잡을 수 있지만, 이는 좋은 방법이 아님. 가능한 한 구체적인 예외 유형을 명시.
- else 블록 (선택적): 이 블록은 try 블록 내의 코드가 예외 없이 성공적으로 실행되었을 때 실행. try 블록의 코드가 예외를 발생시키지 않으면 이 블록이 실행.
- finally 블록 (선택적): 이 블록은 예외 발생 여부와 관계없이 항상 실행. 이 블록은 일반적으로 자원을 정리하거나 파일을 닫는 등의 작업을 위해 사용됨.
try:
# 예외가 발생할 수 있는 코드 (0으로 나누려고 함)
result = 10 / 0
except ZeroDivisionError:
# ZeroDivisionError 예외를 처리
print("0으로 나눌 수 없습니다.")
else:
# 예외가 발생하지 않았을 때 실행
print("연산 성공:", result)
finally:
# 예외 발생 여부와 상관없이 항상 실행
print("예외 처리 완료")
- try ~ except / try ~ finally / try ~ except ~ else / try ~ except ~ else ~ finally
- except 또는 finally와 꼭 함께 쓰임.
Exception as err 구문
- try except 블록에서 예외 처리를 할 때 사용됨.
- 이 구문을 사용하면 발생한 예외의 세부 정보에 접근할 수 있다 ( 어떤 에러인지 그 내용을 확인 할 수 있다는 뜻.)
- 발생한 예외의 유형과 관련된 메세지를 err 변수에 저장.
- err 변수를 통해서 예외의 세부 정보를 얻음.
- 예외의 종류가 불분명할 때나 여러 다른 예외를 동일한 방식으로 처리해야 할 때 유용.
try:
# 예외가 발생할 가능성이 있는 코드
result = 10 / 0
except Exception as err:
# 예외가 발생했을 때 실행되는 블록
print("An error occurred:", err)
- 그러나 가능한 한 구체적인 예외 유형을 명시하는 것이 좋은 프로그래밍 관행이다.
- 예를 들어, ZeroDivisionError나 FileNotFoundError와 같이 특정한 예외를 잡는 것이 더 좋은 방법일 수 있다.
'basic > python' 카테고리의 다른 글
[Python|파이썬] 기본 문법 - 삼항 연산자 (1) | 2024.01.12 |
---|---|
[Python|파이썬] 기본 문법 - 모듈 (1) | 2024.01.12 |
[Python|파이썬] 기본 문법 - 메소드 오버라이딩 (+파이썬의 메소드 오버로딩?!) (0) | 2024.01.08 |
[Python|파이썬] 기본 문법 - 상속 (1) | 2024.01.08 |
[Python|파이썬] 기본 문법 - 클래스 기본 (0) | 2024.01.06 |