Python AssertionError

Python Assertionerror



Khi một chương trình Python gặp một điều kiện không mong muốn trong khi chạy, chương trình sẽ tạm dừng thực thi và trả về một ngoại lệ. Trong Python, lỗi ngoại lệ và lỗi cú pháp là hai loại lỗi chính. Khi một đoạn mã Python hợp lệ về mặt cú pháp tạo ra lỗi, nó được gọi là tạo ra một ngoại lệ / lỗi. Thông báo lỗi ở dòng cuối cùng xác định loại ngoại lệ chính xác và cung cấp mô tả để hỗ trợ gỡ lỗi và một mũi tên trỏ đến dòng hoặc vị trí xảy ra ngoại lệ. Việc nắm bắt và quản lý các ngoại lệ là rất quan trọng để tránh sự cố chương trình đột ngột. Sử dụng một cách khác để thực thi mã. Ví dụ, khi ngoại lệ được chỉ định xảy ra. Hướng dẫn này sẽ thảo luận về AssertionError và cách bạn có thể giải quyết nó bằng Python.

AssertionError trong Python là gì?

Lỗi xác nhận là một khái niệm lập trình xảy ra khi một lập trình viên viết hoặc tạo một khối mã được sử dụng để khai báo một tiêu chí hoặc điều kiện được thỏa mãn trước khi mô-đun được chạy. Giống như bất kỳ lỗi Python nào, điều khiển được chuyển sang dòng mã tiếp theo nếu điều kiện được chỉ định khi xác nhận được khai báo đúng. Mặt khác, nếu nó là false, một lỗi hoặc ngoại lệ sẽ xuất hiện và chương trình bị dừng. Câu lệnh khẳng định có thể được sử dụng trong các ngôn ngữ lập trình khác nhau với các cú pháp cụ thể của chúng vì nó độc lập với ngôn ngữ. Nó là một lớp con hoặc một thể hiện của lớp Ngoại lệ. Python AssertionError có cú pháp sau:

Cú pháp: khẳng định điều kiện, error_message (tùy chọn)







Thí dụ

Chúng tôi sẽ nhập tuổi của một người làm thông tin đầu vào và nếu nhỏ hơn 0, bảng điều khiển sẽ xuất hiện lỗi xác nhận.





Bây giờ, điều gì sẽ xảy ra nếu chúng ta nhập độ tuổi nhỏ hơn 0?





Gỡ lỗi mã của bạn bằng phương pháp này đơn giản hơn, do đó, việc tìm lỗi và sửa lỗi trong chương trình trở nên đơn giản hơn.



Cách hoạt động của AssertionError trong Python

Ngôn ngữ Python bao gồm một câu lệnh khẳng định có thể được sử dụng để tạo ra các đầu ra thông báo lỗi đơn giản với các xác nhận logic. Khi câu lệnh xác nhận không thành công, một 'ngoại lệ' AssertionError sẽ xuất hiện. Trong Python, các lớp ngoại lệ có nguồn gốc từ lớp BaseException. Lớp BaseException, cũng là lớp cơ sở của lớp AssertionError, là nơi mà lớp Exception bắt nguồn từ đó. Luôn phải có mã xử lý ngoại lệ thích hợp để đối phó với lỗi của một câu lệnh khẳng định bất cứ khi nào một câu lệnh được sử dụng. Trình xử lý ngoại lệ mặc định trong Python sẽ in thông báo lỗi do lập trình viên viết, nhưng lỗi cũng có thể được xử lý hoặc giải quyết mà không có thông báo lỗi.

Triển khai AssertionError bằng Python

Sau đây là một số ví dụ về AssertionError trong Python:

Thí dụ

Trong ví dụ này, chúng ta sẽ viết một chương trình Python để hiển thị một AssertionError trong một chương trình tìm diện tích của một hình tròn.

Giá trị bán kính “r” được chuyển làm đầu vào cho một hàm trong chương trình trước đó được tạo ra để tìm diện tích của hình tròn. Sau đó, câu lệnh khẳng định được sử dụng để xác định xem giá trị được cung cấp hoặc bán kính “r” có dưới 0 hay không và nếu giá trị âm được cung cấp cho nó, một ngoại lệ sẽ được đưa ra. Diện tích của hình tròn sẽ được trả về dựa trên giá trị của bán kính “r” được cung cấp cho hàm. Đầu tiên, hàm được thực thi với giá trị r là 3. Sau đó, hàm được thực thi với giá trị 2.5. AssertionError tăng lên khi chúng ta sử dụng giá trị âm của “r”, tức là “-1”.

Hãy thử một ví dụ khác để hiển thị sự xuất hiện của lỗi Xác nhận.

Thí dụ

Trong ví dụ này, chương trình sẽ xác định xem giá trị của mẫu số có khác 0 hay không.

Thông báo lỗi của lỗi xác nhận được hiển thị trong chương trình trước đó. Chúng tôi đã tạo hai biến (a và b), và các giá trị nguyên xác định các biến. Biến thứ hai, tức là, b sau đó được kiểm tra để xem liệu nó có bằng 0 hay không bằng cách sử dụng câu lệnh khẳng định. Nếu không được chỉ định, thông báo lỗi sẽ được in. Nếu không, kết quả của phép chia số đầu tiên cho giá trị thứ hai sẽ được hiển thị. Trong hình trước, đầu ra của chương trình được hiển thị.

Các ứng dụng của AssertionError

Các cách sử dụng có lợi khác của lỗi xác nhận bao gồm:

  • Khẳng định hỗ trợ trong việc đánh giá các giá trị tham số
  • Các xác nhận hỗ trợ trong việc giám sát loại đầu vào và liệu giá trị đó có hợp lệ hay không
  • Ngoài ra, các xác nhận hỗ trợ xác định xem liệu một nhà phát triển mã khác có đang sử dụng sai giao diện hay không
  • Các xác nhận hỗ trợ trong việc giám sát liên tục đầu ra của chương trình

Làm thế nào chúng ta có thể tránh các lỗi xác nhận trong Python

  1. Cờ -O trong chương trình Python có thể được sử dụng để vô hiệu hóa mọi câu lệnh khẳng định. Điều quan trọng cần lưu ý là các câu lệnh đứng sau một câu lệnh khẳng định sẽ không được thực thi nếu chúng ta vô hiệu hóa các câu lệnh khẳng định.
  2. Biến môi trường cũng có thể đặt cờ để tắt các câu lệnh khẳng định. Tất cả các quy trình và ứng dụng sử dụng hoặc kế thừa môi trường đều bị ảnh hưởng trong tình huống này.
  3. Trong Python, cách tiếp cận đơn giản nhất để ngăn lỗi xác nhận là xử lý chúng theo cách thủ công. Nếu chúng tôi đảm bảo rằng luồng điều khiển của chương trình được chuyển hướng để nó không truy cập vào các câu lệnh khẳng định thì sẽ không có cơ hội xảy ra lỗi xác nhận.

Xử lý lỗi AssertionError

Bên cạnh câu lệnh khẳng định, chúng ta cũng có thể xử lý lỗi khẳng định bằng các phương pháp sau:

Xử lý lỗi khẳng định bằng cách sử dụng khối thử ngoại trừ

Câu lệnh khẳng định xác định liệu các giá trị có bằng nhau hay không. Khối try làm tăng lỗi AssertionError vì các số nguyên này không bằng nhau. Lệnh in được thực hiện sau khi khối ngoại trừ đã bắt được ngoại lệ. Tại đây, đầu ra của câu lệnh in từ khối ngoại lệ được hiển thị. Từ khóa nâng cao có thể được sử dụng để sắp xếp lại lỗi trong khối ngoại trừ để chúng tôi có thể xác định nguồn của ngoại lệ. Khi một ngoại lệ xảy ra, từ khóa “raise” sẽ báo lỗi và kết thúc chương trình. Nó giúp duy trì hoặc lưu giữ hồ sơ / theo dõi ngoại lệ hiện có.

Xử lý lỗi AssertionError bằng cách sử dụng mô-đun theo dõi lại

Khi mã chứa một số câu lệnh khẳng định, mô-đun theo dõi lại hỗ trợ xác định nguồn chính xác của lỗi.

Sử dụng mô-đun theo dõi lại, câu lệnh in của chúng tôi có thể được viết bằng trình giữ chỗ {}.

Ngoài ra, chúng tôi có thể xác định các biến khác để lưu trữ vị trí dòng, tên tệp, tên phương thức, cũng như văn bản / thông báo nơi xảy ra ngoại lệ.

Đối tượng theo dõi lại được gọi là “tb”. Chúng tôi sử dụng hai trình giữ chỗ: một cho văn bản và một cho vị trí của dòng trong câu lệnh in.

Ba thành phần của câu lệnh “raise” - exc_type, exc_traceback và exc_value - được trả về bởi hàm sys.exc_info ().

Xử lý lỗi AssertionError bằng cách sử dụng câu lệnh in

Để xử lý thủ công một ngoại lệ, chúng ta có thể sử dụng câu lệnh “print” bên trong khối ngoại trừ.

Câu lệnh in sẽ in ra bất kỳ thông báo lỗi nào mà người dùng nhập vào. Với phương pháp này, người dùng sẽ không phải lo lắng về lỗi kỹ thuật.

Thay vì một lỗi, một thông báo ngắn gọn được hiển thị.

Sự kết luận

Trong bài đăng này, lần đầu tiên chúng ta đã thấy phần giới thiệu các ngoại lệ trong Python. Chúng ta đã thảo luận về AssertionError, cách nó hoạt động và cách chúng ta có thể triển khai AssertionError trong Python. Chúng tôi đã giải thích một số lợi thế của AssertionError và cách chúng tôi có thể tránh chúng. Trong phần cuối của bài đăng này, chúng ta đã thấy cách chúng ta có thể xử lý AssertionError trong Python bằng cách sử dụng Khối thử ngoại trừ, mô-đun theo dõi và câu lệnh in.