Những lỗi nào được bắt bởi trình thông dịch python?
Python cung cấp hai tính năng rất quan trọng để xử lý bất kỳ lỗi không mong muốn nào trong các chương trình Python của bạn và để thêm khả năng sửa lỗi trong đó – Show
Danh sách các ngoại lệ tiêu chuẩn - Sr. KHÔNG. Tên ngoại lệ & Mô tả1Ngoại lệ Lớp cơ sở cho tất cả các ngoại lệ 2Dừng lặp lại Xảy ra khi phương thức next() của iterator không trỏ đến bất kỳ đối tượng nào 3Thoát khỏi hệ thống Lớn lên bởi hệ thống. chức năng thoát () 4ChuẩnLỗi Lớp cơ sở cho tất cả các ngoại lệ dựng sẵn ngoại trừ StopIteration và SystemExit 5Số họcLỗi Lớp cơ sở cho tất cả các lỗi xảy ra khi tính toán số 6lỗi tràn Tăng lên khi một phép tính vượt quá giới hạn tối đa cho một loại số 7Lỗi dấu phẩy động Tăng lên khi tính toán dấu phẩy động không thành công 8ZeroDivisionLỗi Tăng lên khi phép chia hoặc modulo cho 0 diễn ra cho tất cả các loại số 9Khẳng địnhLỗi Tăng lên trong trường hợp thất bại của câu lệnh Assert 10Lỗi thuộc tính Tăng trong trường hợp tham chiếu hoặc gán thuộc tính không thành công 11EOFLỗi Xảy ra khi không có đầu vào từ hàm raw_input() hoặc input() và đến cuối tệp Nhập Lỗi Tăng lên khi một câu lệnh nhập không thành công 13Bàn PhímNgắt Xảy ra khi người dùng làm gián đoạn quá trình thực thi chương trình, thường bằng cách nhấn Ctrl+c 14Tra cứuLỗi Lớp cơ sở cho tất cả các lỗi tra cứu 15Chỉ mụcLỗi Xảy ra khi không tìm thấy chỉ mục trong chuỗi 16Lỗi chính Xảy ra khi không tìm thấy khóa được chỉ định trong từ điển 17TênLỗi Xảy ra khi không tìm thấy mã định danh trong không gian tên cục bộ hoặc toàn cầu 18UnboundLocalError Xảy ra 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ó 19Môi trườngLỗi Lớp cơ sở cho tất cả các ngoại lệ xảy ra bên ngoài môi trường Python 20Lỗi IO Xảy ra khi thao tác nhập/xuất không thành công, chẳng hạn như câu lệnh in hoặc hàm open() khi cố mở một tệp không tồn tại 21Lỗi IO Tăng lên cho các lỗi liên quan đến hệ điều hành 22Lỗi cú pháp Xảy ra khi có lỗi trong cú pháp Python 23Lỗi thụt đầu dòng Tăng lên khi thụt đầu dòng không được chỉ định đúng cách 24Lỗi hệ thống Xảy ra khi trình thông dịch tìm thấy sự cố nội bộ, nhưng khi gặp lỗi này, trình thông dịch Python không thoát Thoát khỏi hệ thống Xảy ra khi thoát trình thông dịch Python bằng cách sử dụng sys. chức năng thoát (). Nếu không được xử lý trong mã, khiến trình thông dịch thoát 26LoạiLỗi Xảy ra khi một hoạt động hoặc chức năng được thử không hợp lệ đối với loại dữ liệu đã chỉ định 27Giá trịError Xảy ra khi hàm tích hợp sẵn cho một loại dữ liệu có loại đối số hợp lệ, nhưng các đối số có giá trị không hợp lệ được chỉ định 28Lỗi runtime Xảy ra khi lỗi được tạo không thuộc bất kỳ danh mục nào 29NotImplementedLỗi Xảy ra khi một phương thức trừu tượng cần được triển khai trong một lớp kế thừa không thực sự được triển khai Khẳng định trong PythonMột xác nhận là một kiểm tra độ chính xác mà bạn có thể bật hoặc tắt khi bạn hoàn thành việc kiểm tra chương trình của mình Cách dễ nhất để nghĩ về một khẳng định là so sánh nó với một câu lệnh nâng cao nếu (hoặc chính xác hơn, một câu lệnh nâng cao nếu không). Một biểu thức được kiểm tra và nếu kết quả trả về là sai, một ngoại lệ sẽ được đưa ra Các xác nhận được thực hiện bởi câu lệnh khẳng định, từ khóa mới nhất của Python, được giới thiệu trong phiên bản 1. 5 Các lập trình viên thường đặt các xác nhận khi bắt đầu một hàm để kiểm tra đầu vào hợp lệ và sau khi gọi hàm để kiểm tra đầu ra hợp lệ Tuyên bố khẳng địnhKhi gặp một câu lệnh khẳng định, Python sẽ đánh giá biểu thức đi kèm, điều này hy vọng là đúng. Nếu biểu thức là sai, Python sẽ đưa ra một ngoại lệ AssertionError Cú pháp để khẳng định là - assert Expression[, Arguments] Nếu xác nhận không thành công, Python sử dụng ArgumentExpression làm đối số cho AssertionError. Các ngoại lệ AssertionError có thể bị bắt và xử lý giống như bất kỳ ngoại lệ nào khác bằng cách sử dụng câu lệnh try-ngoại trừ, nhưng nếu không được xử lý, chúng sẽ chấm dứt chương trình và tạo ra một truy nguyên Ví dụĐây là một chức năng chuyển đổi nhiệt độ từ độ Kelvin sang độ F. Vì 0 độ Kelvin càng lạnh càng tốt, nên chức năng này sẽ ngừng hoạt động nếu nó thấy nhiệt độ â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) Khi đoạn mã trên được thực thi, nó tạo ra kết quả 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! Ngoại lệ là gì?Một ngoại lệ là một sự kiện, xảy ra trong quá trình thực thi chương trình làm gián đoạn luồng hướng dẫn bình thường của chương trình. Nói chung, khi tập lệnh Python gặp tình huống mà nó không thể đối phó, nó sẽ đưa 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 Khi tập lệnh Python đưa ra một ngoại lệ, nó phải xử lý ngoại lệ đó ngay lập tức nếu không nó sẽ kết thúc và thoát Xử lý một ngoại lệNếu bạn có một số mã đáng ngờ có thể gây ra 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ờ đó vào một lần thử. khối. Sau khi thử. khối, bao gồm một ngoại trừ. câu lệnh, theo sau là một khối mã xử lý sự cố một cách tinh tế nhất có thể cú phápĐây là cú pháp đơn giản của try. ngoại trừ. các 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 -
Ví dụVí dụ này mở một tệp, ghi nội dung vào tệp, 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 Ví dụ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ó phát sinh một ngoại lệ - #!/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 Điều khoản ngoại trừ không có ngoại lệBạn cũng có thể sử dụng câu lệnh except mà không có ngoại lệ nào được định nghĩa như sau - ________số 8_______Loại câu lệnh thử ngoại trừ này nắm bắt tất cả các ngoại lệ xảy ra. Tuy nhiên, việc sử dụng loại câu lệnh thử ngoại trừ này không được coi là một phương pháp 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 khiến 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 Điều khoản ngoại trừ với nhiều ngoại lệBạn cũng có thể sử dụng câu lệnh except tương tự để xử lý nhiều ngoại lệ như sau - 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. Mệnh đề try-cuối cùngBạn có thể sử dụng một cuối cùng. chặn cùng với một lần thử. khối. Khối cuối cùng là nơi để đặt bất kỳ mã nào phải thực thi, cho dù khối thử có đưa ra ngoại lệ hay không. Cú pháp của câu lệnh try-cuối cùng là thế này - #!/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 không thể sử dụng mệnh đề khác cùng với mệnh đề cuối cùng Ví 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 Nếu bạn không có quyền mở tệp ở chế độ ghi, thì điều này sẽ tạo ra kết quả sau - Error: can't find file or read data Ví dụ tương tự có thể được viết rõ ràng hơn 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)3 Khi một ngoại lệ được ném vào khối thử, việc thực thi sẽ ngay lập tức chuyển sang khối cuối cùng. Sau khi tất cả các câu lệnh trong khối cuối cùng được thực thi, ngoại lệ lại được đưa ra và được xử lý trong các câu lệnh ngoại trừ nếu xuất hiện trong lớp cao hơn tiếp theo của câu lệnh thử ngoại trừ Đối số của một ngoại lệMột ngoại lệ có thể có một đối số, là một giá trị cung cấp thêm thông tin về sự cố. Nội dung của đối số thay đổi theo ngoại lệ. Bạn nắm bắt đối số của một ngoại lệ bằng cách cung cấp một biến trong mệnh đề ngoại trừ 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 Nếu bạn viết mã để xử lý một ngoại lệ, bạn có thể có một biến theo sau tên của ngoại lệ trong câu lệnh except. Nếu bạn đang bẫy nhiều ngoại lệ, bạn có thể có một biến theo sau bộ ngoại lệ Biến này nhận giá trị của ngoại lệ chủ yếu chứa nguyên nhân của ngoại lệ. Biến có thể nhận một giá trị hoặc nhiều giá trị dưới dạng một bộ. Bộ dữ liệu này thường chứa chuỗi lỗi, số lỗi và vị trí lỗi Ví dụSau đây là một ví dụ cho một ngoại lệ duy nhất - #!/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 Tăng ngoại lệBạn có thể tăng ngoại lệ theo nhiều cách bằng cách sử dụng câu lệnh tăng. Cú pháp chung cho câu lệnh nâng cao như sau 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 Ở đây, Exception là loại ngoại lệ (ví dụ: NameError) và đối số là giá trị cho đối số ngoại lệ. Đối số là tùy chọn; Đối số cuối cùng, truy nguyên, cũng là tùy chọn (và hiếm khi được sử dụng trong thực tế) và nếu có, là đối tượng truy nguyên được sử dụng cho ngoại lệ Ví dụMột ngoại lệ có thể là một chuỗi, một lớp hoặc một đối tượng. Hầu hết các ngoại lệ mà lõi Python đưa ra là các lớp, với một đối số là một thể hiện của lớp. Việc xác định các ngoại lệ mới khá dễ dàng và có thể được thực hiện 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)8 Ghi chú. Để bắt một ngoại lệ, mệnh đề "ngoại trừ" phải đề cập đến cùng một ngoại lệ được ném đối tượng lớp hoặc chuỗi đơn giản. Ví dụ, để nắm bắt ngoại lệ trên, chúng ta phải viết mệnh đề except 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)9 Ngoại lệ do người dùng xác địnhPython cũng cho phép bạn tạo các ngoại lệ của riêng mình bằng cách lấy các lớp từ các ngoại lệ tích hợp sẵn tiêu chuẩn Đây là một ví dụ liên quan đến RuntimeError. Ở đây, một lớp được tạo được phân lớp từ RuntimeError. Điều này 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êu ra và bị bắ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 Networkerror Các lỗi có thể được phát hiện bởi Python là gì?Có ba loại lỗi chính có thể phân biệt được trong Python. lỗi cú pháp, ngoại lệ và lỗi logic. . Lỗi cú pháp tương tự như lỗi ngữ pháp hoặc lỗi chính tả trong Ngôn ngữ. . Thiếu ký hiệu (chẳng hạn như dấu phẩy, dấu ngoặc, dấu hai chấm), viết sai từ khóa, thụt lề không chính xác là những lỗi cú pháp phổ biến trong Python Loại lỗi nào mà trình thông dịch Python chạy chương trình không bắt được và không báo lỗi?Lỗi thời gian chạy
.
3 loại lỗi trong lập trình Python là gì?Trong python có ba loại lỗi; . syntax errors, logic errors and exceptions.
Các lỗi phổ biến nhất trong Python là gì?Tránh 8 lỗi phổ biến này trong Python . 1️⃣ Không tuân theo các quy tắc. . 2️⃣ Dùng sai cách diễn đạt. . 3️⃣ Sửa đổi và lặp lại danh sách. . 4️⃣ Đụng độ tên. . 5️⃣ Sử dụng biến lớp không chính xác. . 6️⃣ Không xác định chính xác các thông số. . 7️⃣ Lạm dụng “_ _ del _ _”. 8️⃣ Phụ thuộc mô-đun tròn |