Python의 예외 처리: Try except를 사용한 예외 처리

게시 됨: 2021-06-29

오류가 발생하는 동안 Python 프로그램이 종료됩니다. 오류는 일반적으로 실행을 중지하는 프로그램에서 발생하는 문제입니다. 오류는 구문 오류로 인한 것일 수도 있고 예외일 수도 있습니다. 구문 분석기가 잘못된 명령문을 감지할 때마다 구문 오류가 발생합니다.

그러나 올바른 구문을 가진 코드에서 오류가 발생하면 이를 예외라고 합니다. 파이썬에서는 다양한 내장 예외를 사용할 수 있습니다. 이는 프로그램의 정상적인 흐름이 변경되는 내부 이벤트가 발생하면 발생합니다.

따라서 예외는 코드 중단을 초래하여 프로그램 흐름이 중단되는 특정 비정상적인 프로그램 조건으로 정의될 수 있습니다.

예외가 발생하는 즉시 프로그램 실행이 중지됩니다. 이렇게 하면 실행할 코드가 추가로 중지됩니다. 따라서 예외는 python 스크립트에서 처리할 수 없는 런타임의 결과로 발생하는 오류입니다.

python에서 예외 처리를 위해 스크립팅 언어인 python은 코드 실행이 계속되고 중단이 없도록 솔루션을 제공합니다. 예외 처리가 없으면 예외를 throw하는 코드 뒤에 있는 코드 실행이 중지됩니다.

일반적인 예외를 포함하여 중단 없이 프로그램을 실행할 수 있는 몇 가지 기본 제공 옵션을 파이썬에서 사용할 수 있습니다. 이와 함께 python 사용자 지정 예외 조항이 있습니다. 모든 파이썬 프로그램에서 throw될 수 있는 일반적인 예외는 다음과 같습니다.

  • ZeroDivisionError: 이 유형의 예외는 0을 사용하여 숫자를 나눌 때 발생합니다.
  • NameError: 프로그램이 전역 또는 지역 이름을 찾지 못할 때마다 이러한 유형의 예외가 발생합니다.
  • IndentationError: 잘못된 들여쓰기로 인해 indentationError가 발생합니다.
  • IOError : 입출력 작업이 실패하면 IOError가 발생합니다.
  • EOFError: 프로그램의 연속적인 동작 중에 발생한다.

파일 끝에 도달했습니다.

목차

예외 발생

특정 조건에서 예외를 던지기 위해 raise가 사용됩니다.
프로그램 실행이 중지되고 관련 예외가 화면에 표시됩니다. 예외 표시를 통해 사용자는 근본적인 문제가 무엇인지 알 수 있습니다.

파이썬에서는 raise 절을 ​​사용하여 예외를 발생시킬 수 있습니다. 이 응용 프로그램은 예외를 발생시켜 프로그램을 중지해야 하는 경우에 유용합니다.

예를 들면: 프로그램이 실행을 위해 약 1GB의 메모리가 필요하고 1GB를 차지하려고 시도한다고 가정합니다. 이 경우 프로그램 실행을 중지하기 위해 예외가 throw될 수 있습니다.

예외 발생 구문:

예외_클래스,<값>

그러므로,

  • 'raise'는 프로그램에서 예외를 발생시키는 데 사용됩니다.
  • 괄호에 제공할 수 있는 예외에 값을 제공할 수 있습니다.
  • 값에 액세스하는 것은 "as" 키워드로 수행할 수 있습니다. 예외에 주어진 값은 "e"로 표시된 참조 변수에 저장할 수 있습니다.
  • 예외 유형을 지정하기 위해 값을 예외에 전달할 수 있습니다.

주장 오류

프로그램이 충돌하도록 하는 대신 Python에서 어설션을 만들 수 있습니다. 프로그램이 특정 조건을 충족한다고 주장합니다. 조건이 참이면 프로그램이 계속 실행됩니다. 그렇지 않으면 조건이 거짓으로 판명될 때 프로그램에서 AssertionError 예외가 발생합니다.

try 및 except 블록 을 통한 예외 처리

python에서 throw된 예외는 catch된 다음 python의 try 및 except 블록에서 처리됩니다. try 블록 내의 코드는 프로그램의 일부로 정상적으로 실행됩니다. 다른 블록에는 try 블록에서 프로그램이 던진 예외에 대한 응답으로 실행되는 명령문이 포함됩니다.

프로그램은 구문상 올바른 코드에서 오류가 발생할 때마다 예외를 throw합니다. 던져진 예외가 제대로 처리되지 않으면 프로그램에서 충돌이 발생합니다. 이러한 시나리오에서 예외 블록은 해당 예외에 대한 프로그램의 응답을 결정합니다.

try 및 except 절의 적용은 언급된 소스에서 가져온 다음 예제를 통해 가장 잘 이해될 것입니다.

이 경우 예외가 발생할 때마다 프로그램은 계속 실행되며 공백 출력을 제공하는 대신 프로그램이 성공하지 못했다는 것을 사용자에게 알립니다.

확인 : Python 프로젝트 아이디어 및 주제

프로그램은 함수 호출을 통해 발생한 오류 유형을 보여주었습니다. 그러나 함수에서 발생한 오류를 잡아서 실제로 무엇이 잘못되었는지 알 수 있습니다.

Windows 시스템에서 코드를 실행하면 다음이 생성됩니다.

가장 먼저 표시되는 메시지는 사용자에게 해당 기능이 Linux 운영 체제 시스템에서만 실행될 수 있음을 알리는 AssertionError를 나타냅니다. 두 번째 메시지는 추가로 어떤 기능이 실행될 수 없는지에 대한 정보를 제공합니다.
file.log가 "file.log를 열 수 없습니다"라는 메시지와 함께 출력을 생성하는 경우 존재하지 않습니다.

프로그램은 사용자에게 정보를 전달하는 메시지이므로 계속 실행됩니다. Python 문서에서 많은 기본 제공 예외를 사용할 수 있습니다. 설명된 한 가지 예외가 아래에 나와 있습니다.

이 경우 file.log가 없으면 다음 출력이 생성됩니다.

try 절에서 더 많은 함수 호출을 사용하여 다양한 예외를 catch할 수 있습니다. 그러나 예외를 감지하면 try 절 문이 중지됩니다.

else 절

명령문의 else 절을 ​​사용하면 예외가 없는 경우에만 명령문 블록을 실행하도록 프로그램에 지시하는 데 도움이 될 수 있습니다.

else 절은 예외가 없었기 때문에 실행되었습니다. 코드에 예외가 포함되어 있으면 다음과 같은 결과가 발생합니다.

Python 사용자 정의 예외

Python에는 프로그램에 문제가 있을 때마다 오류를 발생시키는 여러 내장 예외가 있습니다. 그러나 사용자는 자신의 목적을 제공하는 경우 몇 가지 사용자 정의 예외를 생성해야 합니다.

사용자 정의 예외를 정의하기 위해 새 클래스를 작성할 수 있습니다. 직접 또는 간접적으로 이러한 클래스는 기본 제공 예외 클래스에서 파생되어야 합니다.

Exception 클래스에서 상속된 사용자 정의 클래스 CustomError가 생성됩니다. 다른 예외와 유사하게 이 예외도 선택적 오류 메시지와 함께 'raise'를 사용하여 발생합니다.

대규모 파이썬 프로그램이 개발될 때마다 사용자 정의 예외는 별도의 파일에 배치해야 합니다. 일반적으로 이를 수행하는 것이 좋으며 예외가 errors.py 또는 exceptions.py로 별도로 정의되는 대부분의 표준 모듈이 뒤따릅니다.

python 사용자 정의 예외 간단하고 일반 클래스가 모든 것을 구현하므로 동일하게 따릅니다.

구문 및 예

와 b인 두 개의 변수를 고려합시다. 변수에 대한 입력은 사용자로부터 취해지며 숫자의 나눗셈이 수행됩니다. 이제 사용자가 입력한 분모가 0이면.

이러한 예외를 처리하기 위해 프로그램에 try-except 블록을 추가할 수 있습니다. 예외를 던지는 것으로 의심되는 모든 유형의 코드. 구문의 try 블록에 배치해야 합니다.

try 블록의 구문

노력하다:

#암호

예외1 제외:

#암호

예외2 제외:

#암호

#암호

코드가 try 블록에 배치되고 코드에 예외가 없을 때 실행되는 try-except 문 사용을 보여줍니다.

try-except를 사용한 else 문의 구문

노력하다

#try 문

예외1 제외

#암호

또 다른

#예외가 없을 때 코드 실행

몇 가지 중요한 사항:

  • 예외는 파이썬에서 예외 문을 통해 지정되지 않습니다.
  • 다른 유형의 예외를 throw할 수 있는 try 블록 내부에 많은 문이 있을 수 있으므로 try 블록을 사용하여 코드에서 여러 예외를 선언할 수 있습니다.
  • else 블록은 try 블록에서 throw된 예외가 없을 때 실행되는 try 블록으로 지정할 수 있습니다.
  • else 블록에는 예외 발생을 담당하지 않는 명령문이 포함되어야 합니다.

더 읽어보기: Python이 개발자들에게 인기 있는 주요 이유

결론

이 기사에서 우리는 몇 가지 예를 들어 파이썬에서 예외 처리의 개념에 대해 간략하게 논의했습니다. 기본 제공 예외와 함께 파이썬 사용자 정의 예외 도 간략하게 정의됩니다. 이제 예외의 중요성과 파이썬에서 예외 처리를 알 수 있습니다 .

파이썬 언어와 데이터 과학에서의 구현에 대해 더 자세히 알고 싶다면 upGrad "데이터 과학의 PG 프로그램 실행" 과정을 확인하십시오.

온라인 과정은 21세에서 45세 사이의 모든 초급 전문가를 위해 설계되었습니다. 20개 이상의 라이브 세션과 14개 이상의 도구 및 프로그래밍 언어에 대한 실용적인 지식을 갖춘 이 과정은 완벽함을 향한 길잡이가 될 것입니다. 모든 쿼리를 보낼 수 있습니다. 저희 팀이 도와드리겠습니다.

파이썬에는 몇 가지 유형의 오류가 있습니까?

Python-구문 오류 및 예외에는 주로 2가지 구별 가능한 오류 범주가 있습니다. 구문 오류: 구문 오류는 코드 행에 잘못된 구문이 있을 때 발생합니다. 이것은 가장 일반적인 오류이며 프로그램을 구문 분석하는 동안 감지됩니다. 오류에는 연산자 누락, 부적절한 들여쓰기, 키워드 맞춤법 오류, 콜론 누락, 대괄호 및 구문의 기타 미세한 오류가 포함됩니다. 예외: 예외는 프로그램 실행 중에 감지된 오류입니다. 프로그램은 구문 테스트에 성공하면 논리 오류 검사를 거칩니다. Python에는 풍부한 내장 예외 모음이 있습니다. 사용자 정의 예외를 생성할 수도 있습니다.

구문 오류와 예외의 주요 차이점은 무엇입니까?

구문 오류는 코드 또는 코드 줄이 구문적으로 잘못된 경우 발생합니다. 코드에서 구문 오류가 발생하면 프로그램이 종료됩니다. 구문 오류는 콜론이 누락되거나 키워드의 철자가 틀리는 경우에도 발생할 수 있습니다.
그러나 예외는 상당히 다릅니다. 예외는 프로그램의 흐름을 방해하는 이상으로 간주될 수 있습니다. 프로그램이 구문상 올바르더라도 예외가 발생할 수 있습니다. 오류와 달리 코드는 예외가 발생한 줄까지 실행됩니다.

Python에서 raise 키워드의 역할은 무엇입니까?

raise 키워드는 Python에서 예외를 발생시키는 데 사용됩니다. 오류 유형도 함께 발생할 수 있으며 예외 발생 시 표시할 텍스트를 추가할 수도 있습니다. 코드에서 입력을 확인해야 할 때 매우 편리합니다.