Single post

python 예외처리 예제

(지금도 CPython의 C 코드에서 발견 된 버그의 상당히 높은 비율은 조기 출구로 인한 메모리 누수입니다 . 언어가 회계 유형 고정을 처리해야하기 때문에 파이썬 코드에는 문제가되지 않습니다. -jJ) 이 구조는 원래 예외가 후자에 의해 덮어쓰는 것을 방지하고 추적에서 전체 스택을 유지합니다. 우리는 제외 절에서 간단한 raise 문을 사용할 수 있습니다. 이렇게 하면 원래 예외가 다시 발생합니다. 표준화된 오류 처리를 수행하는 데 사용할 수 있습니다. 예를 들어 로그 파일에 오류 메시지를 쓰거나 표준화된 예외 정리 프로세스가 있을 수 있습니다. 예외의 동적 측면 외에도 개체는 raise 문에 의해 만들어집니다. 이는 예외와 관련된 모든 정보를 전달하는 데 사용됩니다. try 절 내에서 즉시 예외가 실행되어 file.log를 열려고 시도하는 부분에 도착하지 않았습니다. 이제 Linux 컴퓨터에서 코드를 실행할 때 어떤 일이 발생하는지 살펴보십시오: (죄송합니다만 실제로 C++에서 많은 프로그래밍을 수행한 경우, 예외에 관해서는 두 언어 간에 큰 차이가 없다는 것을 알 수 있습니다. 새로운 및 삭제의 사방에 뿌려와 함께 유행 C와 같은 방법. 당신은 기본적으로 조엘의 주장을 기각하고 있습니다.

이 전체 섹션은 조금 약한, 어쩌면 그냥 “확인 하기 어려운 스파게티 코드로 이어질 수 있는 예외를 남용 하지 마십시오” 그리고 그것으로 수행 할 수 있습니다 -olau) 다음 코드는 어설션 오류를 캡처 하 고 해당 메시지를 출력 하는 예제입니다. 화면: 두 번째 예외를 catch해도 원래 오류 메시지가 유지되는 것을 보장하지는 않습니다. 대부분의 예외는 표준 예외의 이름 지정과 유사하게 “Error”로 끝나는 이름으로 정의됩니다. 경우에 따라 오류에 대해 수행해야 하는 정리 작업이 작업이 성공할 때와 다를 수 있습니다. 예를 들어 데이터베이스를 사용하면 오류가 있지만 그렇지 않으면 커밋하는 경우 트랜잭션을 롤백해야 할 수 있습니다. 이러한 경우 예외를 catch하고 처리해야 합니다. 처리의 일부를 취소한 다음 다시 throw하여 오류 처리를 계속 전파하려면 응용 프로그램의 중간 계층에서 예외를 catch해야 할 수 있습니다. 이러한 유형의 예외를 catch하고 화면에 인쇄하려면 다음 코드를 사용할 수 있습니다. 기본 예외 처리에서 Python의 기본 예외 처리 기능과 예외 제기 프로그램에서 예외를 발생시키는 방법을 보여 드리겠습니다. 예외적인 예제에서 자세한 예제를 살펴보겠습니다. 전체 예외 처리 및 finally 절에서는 경우에 따라 필요한 몇 가지 추가 구문을 다룹니다.

예외 함수에서 예외에 적용되는 몇 가지 표준 라이브러리 함수를 살펴보겠습니다. 화살표는 파서가 구문 오류에 부딪된 위치를 나타냅니다. 이 예제에서는 하나의 대괄호가 너무 많았습니다. 이를 제거하고 코드를 다시 실행: 최종 인수인 추적 추적은 선택 사항이며 실제로는 거의 사용되지 않으며, 있는 경우 예외에 사용되는 추적 추적 개체입니다. 예외는 문자열, 클래스 또는 개체일 수 있습니다. Python 코어가 제기하는 대부분의 예외는 클래스의 인스턴스인 인수와 함께 클래스입니다. 새로운 예외를 정의하는 것은 매우 간단하고 다음과 같이 수행 할 수 있습니다 – 오류 메시지의 앞부분은 스택 추적의 형태로 예외가 발생한 컨텍스트를 보여줍니다. 일반적으로 스택 추적 목록 소스 라인을 포함합니다. 그러나 표준 입력에서 읽은 선은 표시되지 않습니다.

나머지 줄은 예외 유형과 예외의 원인에 따라 세부 정보를 제공합니다. 다음 코드는 사용자의 번호를 허용합니다. try 블록은 숫자가 허용된 범위를 벗어난 경우 ValueError 예외를 발생시게 됩니다.