Hướng dẫn try python - thử trăn
Hàm try() được sử dụng trong việc xử lý lỗi và ngoại lệ trong Python Show
Có hai kiểu lỗi: – Syntax Error: Còn được gọi là Parsing Errors (lỗi phân tích cú pháp), là loại lỗi cơ bản nhất, được đưa ra khi Python parser (trình phân tích cú pháp của Python) không thể hiểu được một dòng code cụ thể nào đó. – Exception: Là những lỗi mà được phát hiện trong khi chương trình đang thực thi, ví dụ như lỗi ZeroDivisionError – Lỗi chia cho 0. Danh sách các Exception Errors – các lỗi ngoại lệ: – IOError: Nếu file không thể được mở ra – KeyboardInterrupt: Khi người dùng nhấn vào một phím không được yêu cầu – ValueError: Khi built-in function (hàm được tích hợp sẵn trong Python) nhận được một đối số sai (wrong argument) – EOFError: Nếu đọc được ký tự End-Of-File (tức là ký tự kết thúc file) mà trước đó không đọc được bất cứ dữ liệu nào. – ImportError: Nếu không thể tìm được module đang được import vào chương trình. Tiếp theo, chúng ta sẽ tìm hiểu về cách để xử lý các lỗi này bên trong code Python của mình. Ở đây, chúng ta sẽ cần tới cặp câu lệnh try-except. Cú pháp cơ bản:
Hàm try() hoạt động như thế nào? – Đầu tiên, câu lệnh try đầu tiên sẽ được thực thi, tức là phần code nằm giữa mệnh đề try và mệnh đề except sẽ được thực thi đầu tiên. – Nếu không có ngoại lệ nào được đưa ra, thì chỉ có mệnh đề try sẽ chạy, còn mệnh đề except sẽ không chạy mà đi vào trạng thái finished (đã hoàn thành) luôn. – Nếu có bất kỳ ngoại lệ nào xuất hiện, mệnh đề try sẽ được bỏ qua, và mệnh đề except sẽ chạy. – Nếu có bất kỳ ngoại lệ nào xuất hiện, nhưng mệnh đề except bên trong code không xử lý nó, thì nó sẽ được truyền lại lên trên cho mệnh đề try ở bên ngoài. Nếu ngoại lệ vẫn không được xử lý, thì chương trình sẽ dừng thực thi. – Một câu lệnh try có thể đi kèm với nhiều hơn một mệnh đề except. Ví dụ 1: Không có ngoại lệ xuất hiện, mệnh đề try sẽ chạy
– Kết quả in ra là:
Ví dụ 2: Có một ngoại lệ, vì vậy chỉ có mệnh đề except sẽ chạy
– Kết quả in ra là:
Ví dụ 2: Có một ngoại lệ, vì vậy chỉ có mệnh đề except sẽ chạy
geeksforgeeks
Các series tự học lập trình khác
Trang chủ Chào thân ái và quyết thắng!Sau khi định nghĩa lớp trên, bạn có thể tạo exception như sau:
Custom Exception trong PythonException là gì? Ngoại lệ có thể là bất kỳ điều kiện bất thường nào trong chương trình mà phá vỡ luồng thực thi chương trình đó. Bất cứ khi nào một ngoại lệ xuất hiện, mà không được xử lý, thì chương trình ngừng thực thi và vì thế code không được thực thi. Python đã định nghĩa sẵn rất nhiều ngoại lệ, mà đã được trình bày trong chương Standard Exception. Trong chương này chúng ta sẽ tìm hiểu cách xử lý ngoại lệ cũng như cách tạo các Custom Exception như thế nào. Lệnh except cũng có thể được sử dụng mà không xác định exception nào. Lệnh try-except này bắt tất cả exception mà xuất hiện. Sử dụng loại lệnh try-except này không phải là sự thực hành lập trình tốt, bởi vì nó bắt tất cả exception nhưng không làm cho lập trình viên biết được căn nguyên của vấn đề làm xuất hiện exception đó. Cú pháp: try: Ban thuc hien cac hoat dong cua minh tai day; Va day la phan code co the tao exception; ...................... except ExceptionI: Neu co ExceptionI, thi thuc thi khoi code nay except ExceptionII: Neu co ExceptionII, thi thuc thi khoi code nay ...................... else: Neu khong co exception nao thi thuc thi khoi code nay Mệnh đề except với nhiều exception trong Python
Ví dụ: Ví dụ sau mở một file, ghi nội dung vào file này và sau đó đóng file, tất cả hoạt động đều thành công: try: fh = open("testfile", "w") fh.write("Day la mot kiem tra nho ve xu ly ngoai le!!") except IOError: print "Error: Khong tim thay file" else: print "Thanh cong ghi noi dung vao file" fh.close() Kết quả là: Output: Thanh cong ghi noi dung vao file Ví dụ: Ví dụ sau mở một file, ghi nội dung vào file này và sau đó đóng file, tất cả hoạt động đều thành công: try: fh = open("testfile", "r") fh.write("Day la mot kiem tra nho ve xu ly ngoai le!!") except IOError: print "Error: Khong tim thay file" else: print "Thanh cong ghi noi dung vao file" Kết quả là: Output: Error: Khong tim thay file Ví dụ sau mở một file để ghi trong khi bạn không có quyền ghi, do đó nó sẽ tạo một exception:Mệnh đề except mà không xác định Exception trong Python Lệnh except cũng có thể được sử dụng mà không xác định exception nào. Lệnh try-except này bắt tất cả exception mà xuất hiện. Sử dụng loại lệnh try-except này không phải là sự thực hành lập trình tốt, bởi vì nó bắt tất cả exception nhưng không làm cho lập trình viên biết được căn nguyên của vấn đề làm xuất hiện exception đó. 0Cú pháp:Mệnh đề except với nhiều exception trong Python 1Sử dụng cùng lệnh except như trên, bạn có thể khai báo nhiều exception như sau:Khối try-finally trong Python 2Trong trường hợp nếu có bất kỳ code nào mà người dùng muốn được thực thi, dù cho có xuất hiện exception hay không thì khối code đó có thể được đặt trong khối finally. Khối finally sẽ luôn luôn được thực thi bất chấp có hay không exception. Cú pháp của khối try-finally là:: Bạn có thể cung cấp một hoặc nhiều mệnh đề except, hoặc một mệnh đề finally, nhưng không được cung cấp cả hai. Ngoài ra bạn cũng không thể sử dụng mệnh đề else với một mệnh đề finally. Ví dụ: 3Ví dụ sau mở một file, ghi nội dung vào file này và sau đó đóng file, tất cả hoạt động đều thành công: Error: Khong tim thay file Kết quả là: 5Output: Ví dụ sau mở một file để ghi trong khi bạn không có quyền ghi, do đó nó sẽ tạo một exception:Mệnh đề except mà không xác định Exception trong Python 6Lệnh except cũng có thể được sử dụng mà không xác định exception nào. Lệnh try-except này bắt tất cả exception mà xuất hiện. Sử dụng loại lệnh try-except này không phải là sự thực hành lập trình tốt, bởi vì nó bắt tất cả exception nhưng không làm cho lập trình viên biết được căn nguyên của vấn đề làm xuất hiện exception đó. Ví dụ: Ví dụ sau mở một file, ghi nội dung vào file này và sau đó đóng file, tất cả hoạt động đều thành công: Kết quả là: Output:Ví dụ sau mở một file để ghi trong khi bạn không có quyền ghi, do đó nó sẽ tạo một exception: 8Mệnh đề except mà không xác định Exception trong Python Ví dụ: 9Lệnh except cũng có thể được sử dụng mà không xác định exception nào. Lệnh try-except này bắt tất cả exception mà xuất hiện. Sử dụng loại lệnh try-except này không phải là sự thực hành lập trình tốt, bởi vì nó bắt tất cả exception nhưng không làm cho lập trình viên biết được căn nguyên của vấn đề làm xuất hiện exception đó. Cú pháp: 0Mệnh đề except với nhiều exception trong PythonSử dụng cùng lệnh except như trên, bạn có thể khai báo nhiều exception như sau: Khối try-finally trong Python 1Trong trường hợp nếu có bất kỳ code nào mà người dùng muốn được thực thi, dù cho có xuất hiện exception hay không thì khối code đó có thể được đặt trong khối finally. Khối finally sẽ luôn luôn được thực thi bất chấp có hay không exception. Cú pháp của khối try-finally là: 2 |