Hướng dẫn dùng python standarderror python
Bất kỳ một ngôn ngữ lập trình nào cũng có phần xử lý lỗi ngoại lệ exception, nó không chỉ giúp cũng ta debug mà còn giúp chúng ta tắt các thông báo lỗi không mong muốn của trương trình khi nó ở chế độ production. Giả sử mình có một hàm
Bây giờ mình sẽ gọi nó như bình thường
Nhưng trong trường hợp tham số thứ 2 bây giờ không phải bằng 2 nữa mà là bằng 0 thì sao nhỉ.
Và đây là kết quả mình thu được:
Như các bạn đã thấy thì chương trình đã báo lỗi là không thể thực hiện phép chia cho 0. Và trong trường hợp này thì các bạn có thể hạn chế lỗi bằng cách ràng buộc tham số b sao cho nó khác 0 -> cách này ai cũng biết rồi. Nhưng ở phạm vị bài này mình muốn hướng dẫn mọi người một cách nữa đó là sử dụng exception. Để sử dụng exception trong Python thì các bạn sử dụng lệnh
Trong đó:
Nếu khối lệnh trong VD: Mình sẽ hạn bắt lỗi của ví dụ trên bằng exception. Như các bạn đã thấy ở dòng báo lỗi trong ví dụ trên nó có đoạn
Và đối với mỗi khối lệnh VD: Bắt nhiều exception trên một lần khai báo.
Hoặc bạn cũng có thể khai báo nhiều except trong một khối lệnh VD: Bắt nhiều exception.
Và đương nhiên bạn cũng có thể lồng các khối VD:
2, Finally.Nếu như trong khối lệnh
Finally trong Python thường được dùng để clear data mà trong quá trình VD:
3, Các exception có sẵn trong Python.Dưới đây là danh sách các exception mặc định trong Python.
4, Xây dựng một exception riêng.Do mình chưa giới thiệu với mọi người kiến thức hướng đối tượng trong Python, nên phần này những ai biết hướng đối tượng rồi thì xem, còn không thì khi khác xem lại cũng được :D. Để tạo một exception trong Python thì bắt buộc exception này phải kế thừa lớp Exception trong Python, và còn lại là bạn muốn xử lý như thế nào cũng được. VD: Mình sẽ viết một Exception có tên exceptionDemo.
Sau
khi đã tạo ra được exception cho riêng mình rồi, thì khi thực hiện mà bạn muốn gọi ra gọi exception ra bạn chỉ cần sử dụng keyword
Trong đó, VD:
5, Lời kết.Phần này hơi dài, nhưng các bạn hay làm ở tầm application thì cũng không cần phải quan tâm lắm, vì các framework đã hỗ trợ chúng ta phần này khá là ok rồi. |