Hướng dẫn what is exception in python with example? - ngoại lệ trong python với ví dụ là gì?


Python cung cấp hai tính năng rất quan trọng để xử lý mọi lỗi bất ngờ trong các chương trình Python của bạn và để thêm khả năng gỡ lỗi vào chúng -

  • Xử lý ngoại lệ - Điều này sẽ được đề cập trong hướng dẫn này. Dưới đây là danh sách các ngoại lệ tiêu chuẩn có sẵn trong Python: ngoại lệ tiêu chuẩn. − This would be covered in this tutorial. Here is a list standard Exceptions available in Python: Standard Exceptions.

  • Các xác nhận - điều này sẽ được đề cập trong các xác nhận trong hướng dẫn Python. − This would be covered in Assertions in Python tutorial.

Danh sách các ngoại lệ tiêu chuẩn -

Sr.No.Tên ngoại lệ & Mô tả
1

Ngoại lệ

Lớp cơ sở cho tất cả các trường hợp ngoại lệ

2

Ngăn chặn

Được nâng lên khi phương thức tiếp theo () của trình lặp không trỏ đến bất kỳ đối tượng nào.

3

SystemExit

Được nâng lên bởi hàm sys.exit ().

4

StandardError

Lớp cơ sở cho tất cả các trường hợp ngoại lệ tích hợp ngoại trừ Strepitation và SystemExit.

5

Arithmeticerror

Lớp cơ sở cho tất cả các lỗi xảy ra để tính toán số.

6

Overflowerror

Tăng khi tính toán vượt quá giới hạn tối đa cho loại số.

7

FloatingPulumror

Tăng khi tính toán điểm nổi thất bại.

8

ZerodivisionError

Lớn lên khi phân chia hoặc modulo theo 0 diễn ra cho tất cả các loại số.

9

AssitSerror

Lớn lên trong trường hợp thất bại của tuyên bố khẳng định.

10

Thuộc tính

Lớn lên trong trường hợp thất bại của tham chiếu thuộc tính hoặc gán.

11

Eoferror

Được nâng lên khi không có đầu vào từ hàm raw_input () hoặc input () và kết thúc của tệp.

12

Nhà nhập khẩu

Lớn lên khi một tuyên bố nhập khẩu thất bại.

13

Bàn phím

Lớn lên khi người dùng gián đoạn thực thi chương trình, thường là bằng cách nhấn ctrl+c.

14

Lookuperror

Lớp cơ sở cho tất cả các lỗi tra cứu.

15

IndexError

Nêu ra khi một chỉ số không được tìm thấy trong một chuỗi.

16

KeyError

Lớn lên khi khóa được chỉ định không được tìm thấy trong từ điển.

17

NAMEERROR

Lớn lên khi một định danh không được tìm thấy trong không gian tên địa phương hoặc toàn cầu.

18

Unboundlocalerror

Lớn lên khi cố gắng truy cập một biến cục bộ trong một hàm hoặc phương thức nhưng không có giá trị nào được gán cho nó.

19

Môi trường HERROR

Lớp cơ sở cho tất cả các trường hợp ngoại lệ xảy ra bên ngoài môi trường Python.

20

Lỗi IO

Được nâng lên khi hoạt động đầu vào/ đầu ra không thành công, chẳng hạn như câu lệnh in hoặc hàm open () khi cố gắng mở một tệp không tồn tại.

21

Lỗi IO

Được nâng lên khi hoạt động đầu vào/ đầu ra không thành công, chẳng hạn như câu lệnh in hoặc hàm open () khi cố gắng mở một tệp không tồn tại.

22

Lớn lên cho các lỗi liên quan đến hệ điều hành.

Lỗi cú pháp

23

Lớn lên khi có lỗi trong cú pháp Python.

Mác thụt

24

Lớn lên khi thụt lề không được chỉ định đúng.

Lỗi hệ thống

25

SystemExit

Được nâng lên bởi hàm sys.exit ().

26

StandardError

Lớp cơ sở cho tất cả các trường hợp ngoại lệ tích hợp ngoại trừ Strepitation và SystemExit.

27

Arithmeticerror

Lớp cơ sở cho tất cả các lỗi xảy ra để tính toán số.

28

Overflowerror

Tăng khi tính toán vượt quá giới hạn tối đa cho loại số.

29

FloatingPulumror

Tăng khi tính toán điểm nổi thất bại.

ZerodivisionError

Lớn lên khi phân chia hoặc modulo theo 0 diễn ra cho tất cả các loại số.

AssitSerrorraise-if statement (or to be more accurate, a raise-if-not statement). An expression is tested, and if the result comes up false, an exception is raised.

Lớn lên trong trường hợp thất bại của tuyên bố khẳng định.

Thuộc tính

Lớn lên trong trường hợp thất bại của tham chiếu thuộc tính hoặc gán.

Eoferror

Được nâng lên khi không có đầu vào từ hàm raw_input () hoặc input () và kết thúc của tệp.syntax for assert is −

assert Expression[, Arguments]

Nhà nhập khẩu

Lớn lên khi một tuyên bố nhập khẩu thất bại.

Bàn phím

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
   assert (Temperature >= 0),"Colder than absolute zero!"
   return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)

Lớn lên khi người dùng gián đoạn thực thi chương trình, thường là bằng cách nhấn ctrl+c.

32.0
451
Traceback (most recent call last):
File "test.py", line 9, in 
print KelvinToFahrenheit(-5)
File "test.py", line 4, in KelvinToFahrenheit
assert (Temperature >= 0),"Colder than absolute zero!"
AssertionError: Colder than absolute zero!

Lookuperror

Lớp cơ sở cho tất cả các lỗi tra cứu.

Khi một tập lệnh Python tăng một ngoại lệ, nó phải xử lý ngoại lệ ngay lập tức nếu không nó sẽ chấm dứt và thoát.

Xử lý một ngoại lệ

Nếu bạn có một số mã đáng ngờ có thể nêu ra một ngoại lệ, bạn có thể bảo vệ chương trình của mình bằng cách đặt mã đáng ngờ trong một thử: khối. Sau khi thử: Khối, bao gồm một câu lệnh ngoại trừ: theo sau là một khối mã xử lý vấn đề càng thanh lịch càng tốt.try: block. After the try: block, include an except: statement, followed by a block of code which handles the problem as elegantly as possible.

Cú pháp

Đây là cú pháp đơn giản của thử .... ngoại trừ ... Khối khác -

try:
   You do your operations here;
   ......................
except ExceptionI:
   If there is ExceptionI, then execute this block.
except ExceptionII:
   If there is ExceptionII, then execute this block.
   ......................
else:
   If there is no exception then execute this block. 

Dưới đây là một vài điểm quan trọng về cú pháp nêu trên-

  • Một câu lệnh thử duy nhất có thể có nhiều câu lệnh. Điều này rất hữu ích khi khối thử chứa các câu lệnh có thể ném các loại ngoại lệ khác nhau.

  • Bạn cũng có thể cung cấp một điều khoản ngoại trừ chung, xử lý bất kỳ ngoại lệ nào.

  • Sau (các) mệnh đề ngoại trừ, bạn có thể bao gồm một điều khoản khác. Mã trong khối khác sẽ thực thi nếu mã trong thử: Khối không tăng ngoại lệ.

  • Khối khác là một nơi tốt cho mã không cần thử: Bảo vệ của khối.

Thí dụ

Ví dụ này mở một tệp, ghi nội dung trong tệp, và xuất hiện một cách duyên dáng vì không có vấn đề gì cả -

#!/usr/bin/python

try:
   fh = open("testfile", "w")
   fh.write("This is my test file for exception handling!!")
except IOError:
   print "Error: can\'t find file or read data"
else:
   print "Written content in the file successfully"
   fh.close()

Điều này tạo ra kết quả sau -

Written content in the file successfully

Thí dụ

Ví dụ này mở một tệp, ghi nội dung trong tệp, và xuất hiện một cách duyên dáng vì không có vấn đề gì cả -

#!/usr/bin/python

try:
   fh = open("testfile", "r")
   fh.write("This is my test file for exception handling!!")
except IOError:
   print "Error: can\'t find file or read data"
else:
   print "Written content in the file successfully"

Điều này tạo ra kết quả sau -

Error: can't find file or read data

Ví dụ này cố gắng mở một tệp mà bạn không có quyền ghi, vì vậy nó làm tăng một ngoại lệ -

Mệnh đề ngoại trừ không có ngoại lệ

try:
   You do your operations here;
   ......................
except:
   If there is any exception, then execute this block.
   ......................
else:
   If there is no exception then execute this block. 

Bạn cũng có thể sử dụng câu lệnh ngoại trừ không có ngoại lệ được xác định như sau -try-except statement catches all the exceptions that occur. Using this kind of try-except statement is not considered a good programming practice though, because it catches all exceptions but does not make the programmer identify the root cause of the problem that may occur.

Loại câu lệnh thử nghiệm thử này bắt được tất cả các trường hợp ngoại lệ xảy ra. Mặc dù vậy, sử dụng loại tuyên bố thử nghiệm thử này không được coi là một thực tiễn lập trình tốt, bởi vì nó bắt được tất cả các ngoại lệ nhưng không làm cho lập trình viên xác định nguyên nhân gốc rễ của vấn đề có thể xảy ra.

Mệnh đề ngoại trừ có nhiều ngoại lệ

try:
   You do your operations here;
   ......................
except(Exception1[, Exception2[,...ExceptionN]]]):
   If there is any exception from the given exception list, 
   then execute this block.
   ......................
else:
   If there is no exception then execute this block. 

Bạn cũng có thể sử dụng cùng một câu lệnh ngoại trừ để xử lý nhiều trường hợp ngoại lệ như sau -

Các điều khoản cố gắngfinally: block along with a try: block. The finally block is a place to put any code that must execute, whether the try-block raised an exception or not. The syntax of the try-finally statement is this −

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
   assert (Temperature >= 0),"Colder than absolute zero!"
   return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)
0

Bạn có thể sử dụng một khối cuối cùng: khối cùng với một thử: khối. Khối cuối cùng là một nơi để đặt bất kỳ mã nào phải thực thi, cho dù khối thử có nêu ra ngoại lệ hay không. Cú pháp của câu lệnh thử chung là này-

Thí dụ

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
   assert (Temperature >= 0),"Colder than absolute zero!"
   return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)
1

Ví dụ này mở một tệp, ghi nội dung trong tệp, và xuất hiện một cách duyên dáng vì không có vấn đề gì cả -

Error: can't find file or read data

Điều này tạo ra kết quả sau -

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
   assert (Temperature >= 0),"Colder than absolute zero!"
   return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)
3

Ví dụ này cố gắng mở một tệp mà bạn không có quyền ghi, vì vậy nó làm tăng một ngoại lệ -

Mệnh đề ngoại trừ không có ngoại lệ

Bạn cũng có thể sử dụng câu lệnh ngoại trừ không có ngoại lệ được xác định như sau -

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
   assert (Temperature >= 0),"Colder than absolute zero!"
   return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)
4

Loại câu lệnh thử nghiệm thử này bắt được tất cả các trường hợp ngoại lệ xảy ra. Mặc dù vậy, sử dụng loại tuyên bố thử nghiệm thử này không được coi là một thực tiễn lập trình tốt, bởi vì nó bắt được tất cả các ngoại lệ nhưng không làm cho lập trình viên xác định nguyên nhân gốc rễ của vấn đề có thể xảy ra.

Mệnh đề ngoại trừ có nhiều ngoại lệ

Thí dụ

Ví dụ này mở một tệp, ghi nội dung trong tệp, và xuất hiện một cách duyên dáng vì không có vấn đề gì cả -

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
   assert (Temperature >= 0),"Colder than absolute zero!"
   return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)
5

Điều này tạo ra kết quả sau -

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
   assert (Temperature >= 0),"Colder than absolute zero!"
   return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)
6

Ví dụ này cố gắng mở một tệp mà bạn không có quyền ghi, vì vậy nó làm tăng một ngoại lệ -

Mệnh đề ngoại trừ không có ngoại lệraise statement is as follows.

Cú pháp

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
   assert (Temperature >= 0),"Colder than absolute zero!"
   return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)
7

Bạn cũng có thể sử dụng câu lệnh ngoại trừ không có ngoại lệ được xác định như sau -

Loại câu lệnh thử nghiệm thử này bắt được tất cả các trường hợp ngoại lệ xảy ra. Mặc dù vậy, sử dụng loại tuyên bố thử nghiệm thử này không được coi là một thực tiễn lập trình tốt, bởi vì nó bắt được tất cả các ngoại lệ nhưng không làm cho lập trình viên xác định nguyên nhân gốc rễ của vấn đề có thể xảy ra.

Thí dụ

Ví dụ này mở một tệp, ghi nội dung trong tệp, và xuất hiện một cách duyên dáng vì không có vấn đề gì cả -

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
   assert (Temperature >= 0),"Colder than absolute zero!"
   return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)
8

Điều này tạo ra kết quả sau - In order to catch an exception, an "except" clause must refer to the same exception thrown either class object or simple string. For example, to capture above exception, we must write the except clause as follows −

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
   assert (Temperature >= 0),"Colder than absolute zero!"
   return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)
9

Ngoại lệ do người dùng xác định

Python cũng cho phép bạn tạo ra các ngoại lệ của riêng mình bằng cách lấy các lớp từ các trường hợp ngoại lệ tích hợp tiêu chuẩn.

Dưới đây là một ví dụ liên quan đến RunTimEError. Ở đây, một lớp được tạo ra được phân lớp từ RunTimeError. Điều này rất hữu ích khi bạn cần hiển thị thông tin cụ thể hơn khi một ngoại lệ bị bắt.

Trong khối thử, ngoại lệ do người dùng xác định được nâng lên và bị mắc kẹt trong khối ngoại trừ. Biến E được sử dụng để tạo một thể hiện của lớp mạng của lớp.

32.0
451
Traceback (most recent call last):
File "test.py", line 9, in 
print KelvinToFahrenheit(-5)
File "test.py", line 4, in KelvinToFahrenheit
assert (Temperature >= 0),"Colder than absolute zero!"
AssertionError: Colder than absolute zero!
0

Vì vậy, một khi bạn đã xác định ở lớp trên, bạn có thể tăng ngoại lệ như sau -

32.0
451
Traceback (most recent call last):
File "test.py", line 9, in 
print KelvinToFahrenheit(-5)
File "test.py", line 4, in KelvinToFahrenheit
assert (Temperature >= 0),"Colder than absolute zero!"
AssertionError: Colder than absolute zero!
1

Ngoại lệ đưa ra một ví dụ trong Python là gì?

Một ngoại lệ là một sự kiện, xảy ra trong quá trình thực hiện một chương trình phá vỡ luồng thông thường của các hướng dẫn của chương trình. Nói chung, khi một kịch bản Python gặp phải một tình huống mà nó không thể đối phó, nó sẽ đặt ra một ngoại lệ. Một ngoại lệ là một đối tượng Python đại diện cho một lỗi.an event, which occurs during the execution of a program that disrupts the normal flow of the program's instructions. In general, when a Python script encounters a situation that it cannot cope with, it raises an exception. An exception is a Python object that represents an error.

Các trường hợp ngoại lệ giải thích với ví dụ là gì?

Ngoại lệ là các lỗi xảy ra trong thời gian chạy và phá vỡ luồng thực thi hướng dẫn thông thường trong một chương trình.Một đối tượng ngoại lệ được tạo bởi phương thức xảy ra lỗi sau đó được bàn giao cho hệ thống thời gian chạy.Quá trình này được gọi là ném một ngoại lệ.errors that occur at runtime and disrupt the normal flow of execution of instructions in a program. An exception object is created by the method in which an error occurs which is then handed over to the runtime system. This process is called throwing an exception.

Các loại ngoại lệ khác nhau trong Python là gì?

Ngoại lệ tích hợp.

Từ khóa ngoại lệ trong Python là gì?

Từ khóa ngoại trừ được sử dụng trong thử ... ngoại trừ các khối.Nó xác định một khối mã để chạy nếu khối thử làm tăng lỗi.Bạn có thể xác định các khối khác nhau cho các loại lỗi khác nhau và các khối để thực thi nếu không có gì sai, hãy xem các ví dụ bên dưới.It defines a block of code to run if the try block raises an error. You can define different blocks for different error types, and blocks to execute if nothing went wrong, see examples below.