일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 클라우드컴퓨팅
- 파이썬
- 프로그래밍언어
- 사이버보안
- 빅데이터
- 인공지능
- 데이터베이스
- 데이터과학
- I'm Sorry
- 데이터구조
- 보안
- 컴퓨터비전
- 프로그래밍
- 컴퓨터공학
- 소프트웨어공학
- 컴퓨터과학
- 네트워크
- Yes
- 알고리즘
- 네트워크보안
- 머신러닝
- 데이터분석
- 코딩
- 딥러닝
- 자바스크립트
- 웹개발
- 자료구조
- 버전관리
- 소프트웨어
- 2
- Today
- Total
스택큐힙리스트
예외를 잡았을 때, 타입, 파일 그리고 라인 번호를 어떻게 가져올 수 있나요? 본문
이렇게 출력되는 예외를 잡는 것:
Traceback (most recent call last):
File c:/tmp.py, line 1, in
4 / 0
ZeroDivisionError: integer division or modulo by zero
저는 이것을 형식에 맞게 만들고 싶습니다.
ZeroDivisonError, tmp.py, 1
답변 1
import sys, os
try:
raise NotImplementedError(No error)
except Exception as e:
exc_type, exc_obj, exc_tb = sys.exc_info()
fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
print(exc_type, fname, exc_tb.tb_lineno)
답변 2
예외가 발생하면 타입, 파일 및 라인 번호를 어떻게 가져올까요?예외 처리는 모든 프로그래머에게 중요한 주제입니다. 예외 처리는 프로그램이 크래시나 오류로 인해 중단되는 것을 방지하기 위해 필요합니다. 따라서 예외를 처리하는 방법에 대한 이해가 필수적입니다.
예외 처리를 할 때 타입, 파일, 그리고 라인 번호를 가져올 수 있습니다. 타입은 예외의 종류를 나타내기 때문에 발생한 문제를 빠르게 파악할 수 있습니다. 파일과 라인 번호는 예외가 발생한 위치를 알려줍니다.
예외를 가져오기 위해서는 try-catch 블록을 사용해야 합니다. try 블록 내에서 오류가 발생하면 해당 예외는 catch 블록으로 이동합니다. catch 블록에서는 예외에 대한 정보를 출력할 수 있습니다.
예를 들어, 다음 코드는 NullPointerException을 발생시킵니다.
```java
String str = null;
System.out.println(str.length());
```
이 경우, NullPointerException이 발생하고 이 예외를 처리할 수 있도록 try-catch 블록을 사용해야 합니다.
```java
try {
String str = null;
System.out.println(str.length());
} catch (NullPointerException e) {
System.out.println(예외 발생: + e);
System.out.println(예외 타입: + e.getClass());
System.out.println(예외 발생 위치: + e.getStackTrace()[0].getFileName()
+ , 라인 + e.getStackTrace()[0].getLineNumber());
}
```
catch 블록에서는 예외에 대한 정보를 출력합니다. 예외 타입을 출력하면 어떤 종류의 예외인지 쉽게 파악할 수 있습니다. getStackTrace 메소드를 사용하면 예외가 발생한 위치를 손쉽게 파악할 수 있습니다. getFileName 메소드와 getLineNumber 메소드를 사용하면 각각 어떤 파일과 라인에서 예외가 발생했는지 확인할 수 있습니다.
요약하자면, 예외 처리를 할 때는 try-catch 블록을 사용해야 하며, catch 블록에서는 예외에 대한 정보를 출력할 수 있습니다. 이 정보에는 예외 타입, 파일 및 라인 번호도 포함되어 있습니다. 이러한 정보를 사용하면 예외 처리를 보다 쉽게 할 수 있습니다.