Làm thế nào để bạn sử dụng thử ngoại trừ vòng lặp for trong python?

Ngoại lệ là lỗi xảy ra trong quá trình thực hiện chương trình. Python sẽ không cho bạn biết về các lỗi như lỗi cú pháp [lỗi ngữ pháp], thay vào đó nó sẽ dừng đột ngột

Thoát đột ngột có hại cho cả người dùng cuối và nhà phát triển

Thay vì dừng khẩn cấp, bạn có thể sử dụng câu lệnh thử ngoại trừ để giải quyết vấn đề đúng cách. Việc dừng khẩn cấp sẽ xảy ra nếu bạn không xử lý đúng các trường hợp ngoại lệ

khóa học liên quan. Hoàn thành khóa học & bài tập lập trình Python

Ngoại lệ trong Python là gì?

Python có các ngoại lệ tích hợp có thể gây ra lỗi. Nếu xảy ra lỗi khi chạy chương trình, nó được gọi là ngoại lệ

Nếu một ngoại lệ xảy ra, loại ngoại lệ được hiển thị. Các ngoại lệ cần được xử lý nếu không chương trình sẽ bị sập. Để xử lý các ngoại lệ, khối

1
2
3
4
5
6
7 được sử dụng

Một số trường hợp ngoại lệ mà bạn có thể đã thấy trước đây là

1
2
3
4
5
6
8,
1
2
3
4
5
6
9 hoặc
try: 
1 / 0
except ZeroDivisionError:
print['Divided by zero']

print['Should reach here']
0 nhưng còn nhiều trường hợp khác nữa

Tất cả các ngoại lệ trong Python kế thừa từ lớp BaseException. Nếu bạn mở trình bao tương tác Python và nhập câu lệnh sau, nó sẽ liệt kê tất cả các ngoại lệ tích hợp sẵn

 >>> dir[builtins]

Ý tưởng của mệnh đề try-ngoại trừ là xử lý các ngoại lệ [lỗi khi chạy]. Cú pháp của khối try-ngoại trừ là

1
2
3
4
try:

except Exception:

Ý tưởng của khối try-ngoại trừ là thế này

  • cố gắng. mã với [các] ngoại lệ để bắt. Nếu một ngoại lệ được đưa ra, nó sẽ nhảy thẳng vào khối ngoại trừ

  • ngoại trừ. mã này chỉ được thực thi nếu một ngoại lệ xảy ra trong khối thử. Khối ngoại trừ được yêu cầu với khối thử, ngay cả khi nó chỉ chứa câu lệnh vượt qua

Nó có thể được kết hợp với các từ khóa khác và cuối cùng

  • khác. Mã trong khối khác chỉ được thực thi nếu không có ngoại lệ nào được đưa ra trong khối thử

  • cuối cùng. Mã trong khối cuối cùng luôn được thực thi, bất kể có ngoại lệ nào được đưa ra hay không

Bắt ngoại lệ trong Python

Khối try-ngoại trừ có thể xử lý các ngoại lệ. Điều này ngăn việc thoát chương trình đột ngột do lỗi. Trong ví dụ dưới đây, chúng tôi cố tình đưa ra một ngoại lệ

1
2
3
4
5
6
try: 
1 / 0
except ZeroDivisionError:
print['Divided by zero']

print['Should reach here']

Sau khối ngoại trừ, chương trình tiếp tục. Nếu không có khối try-ngoại trừ, dòng cuối cùng sẽ không đạt được vì chương trình sẽ bị sập

 $ python3 example.py

Divided by zero
Should reach here

Trong ví dụ trên, chúng tôi bắt gặp ngoại lệ cụ thể ZeroDivisionError. Bạn có thể xử lý bất kỳ ngoại lệ như thế này

1
2
3
4
5
6
1
2
3
4
5
6
1

Bạn có thể viết logic khác nhau cho từng loại ngoại lệ xảy ra

1
2
3
4
5
6
2____13

khóa học liên quan. Hoàn thành khóa học & bài tập lập trình Python

thử ngoại trừ

Hãy làm một ví dụ thực tế về khối try-ngoại trừ

Chương trình yêu cầu người dùng nhập số. Thay vào đó, người dùng nhập các ký tự vào hộp nhập liệu. Chương trình thường sẽ bị sập. Nhưng với khối thử ngoại trừ, nó có thể được xử lý đúng cách

Câu lệnh thử ngoại trừ ngăn chương trình bị lỗi và xử lý đúng cách

1
2
3
4
5
6
1
2
3
4
1

Nhập dữ liệu không hợp lệ, làm cho chương trình tiếp tục bình thường

Câu lệnh try ngoại trừ có thể được mở rộng với từ khóa cuối cùng, điều này sẽ được thực thi nếu không có ngoại lệ nào được đưa ra

1
2
3
4
2____53

Chương trình tiếp tục thực hiện nếu không có ngoại lệ nào được ném ra

Có nhiều loại ngoại lệ khác nhau. ZeroDivisionError, NameError, TypeError, v.v. Đôi khi các mô-đun xác định các ngoại lệ của riêng chúng

Khối try-ngoại trừ cũng hoạt động cho các lệnh gọi hàm

1
2
3
4
4
1
2
3
4
5

kết quả này

1
2
3
4
6

Nếu bạn là người mới bắt đầu, thì tôi đánh giá cao cuốn sách này

cố gắng cuối cùng

Một khối try-ngoại trừ có thể có mệnh đề cuối cùng [tùy chọn]. Mệnh đề cuối cùng luôn được thực thi.
Ý tưởng chung là.

1
2
3
4
5
6
1
2
3
4
8

Ví dụ. nếu bạn mở một tệp, bạn sẽ muốn đóng nó, bạn có thể làm như vậy trong mệnh đề cuối cùng

1
2
3
4
9
try:

except Exception:

0

thử khác

Mệnh đề khác được thực thi khi và chỉ khi không có ngoại lệ nào được đưa ra. Điều này khác với mệnh đề cuối cùng luôn được thực thi

1
2
3
4
9
try:

except Exception:

2

đầu ra

try:

except Exception:

3

Bạn có thể bắt gặp nhiều loại ngoại lệ theo cách này, trong đó mệnh đề khác chỉ được thực thi nếu không có ngoại lệ nào xảy ra

try:

except Exception:

4
try:

except Exception:

5

Tăng ngoại lệ

Ngoại lệ được đưa ra khi xảy ra lỗi. Nhưng trong Python, bạn cũng có thể buộc một ngoại lệ xảy ra với từ khóa

try: 
1 / 0
except ZeroDivisionError:
print['Divided by zero']

print['Should reach here']
1

Bất kỳ loại ngoại lệ có thể được nâng lên

1
2
3
4
try:

except Exception:

7____68
try:

except Exception:

9

khóa học liên quan. Hoàn thành khóa học & bài tập lập trình Python

Ngoại lệ tích hợp

Danh sách Ngoại lệ tích hợp của Python được hiển thị bên dưới. Danh sách này hiển thị Ngoại lệ và lý do tại sao nó bị ném [nổi lên].

Ngoại lệNguyên nhân của câu lệnh ErrorAssertionErrorif
try: 
1 / 0
except ZeroDivisionError:
print['Divided by zero']

print['Should reach here']
2 không thành công. AttributeErrorif gán thuộc tính hoặc tham chiếu không thành công. EOFErrorif các hàm
try: 
1 / 0
except ZeroDivisionError:
print['Divided by zero']

print['Should reach here']
3 chạm vào điều kiện cuối tệp. FloatingPointErrornếu thao tác dấu phẩy động không thành công. GeneratorExitRaise nếu phương thức
try: 
1 / 0
except ZeroDivisionError:
print['Divided by zero']

print['Should reach here']
4 của trình tạo được gọi. ImportErrornếu không tìm thấy mô-đun đã nhập. IndexErrorif chỉ mục của chuỗi nằm ngoài phạm vi. KeyErrorif không tìm thấy khóa trong từ điển. KeyboardInterruptif người dùng nhấn phím ngắt [Ctrl+c hoặc xóa]. MemoryErrornếu một hoạt động hết bộ nhớ. NameErrornếu một biến không được tìm thấy trong phạm vi cục bộ hoặc toàn cầu. NotImplementedErrorbằng các phương pháp trừu tượng. OSErrorif hoạt động của hệ thống gây ra lỗi liên quan đến hệ thống. OverflowErrorif kết quả của một phép toán số học quá lớn để được biểu diễn. ReferenceErrorif một proxy tham chiếu yếu được sử dụng để truy cập một tham chiếu được thu gom rác. RuntimeError nếu lỗi không thuộc bất kỳ danh mục nào khác. Hàm StopIterationby
try: 
1 / 0
except ZeroDivisionError:
print['Divided by zero']

print['Should reach here']
5 để chỉ ra rằng không có mục nào khác được trả về bởi trình vòng lặp. SyntaxErrorby trình phân tích cú pháp nếu gặp phải lỗi cú pháp. IndentationError nếu có thụt lề không chính xác. TabErrorif thụt lề bao gồm các tab và không gian không nhất quán. Trình thông dịch SystemErrorif phát hiện lỗi nội bộ. Chức năng SystemExitby
try: 
1 / 0
except ZeroDivisionError:
print['Divided by zero']

print['Should reach here']
6. TypeErrornếu một chức năng hoặc hoạt động được áp dụng cho một đối tượng không đúng loại. UnboundLocalError nếu một tham chiếu được tạo cho 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 liên kết với biến đó. UnicodeErrornếu xảy ra lỗi mã hóa hoặc giải mã liên quan đến Unicode. UnicodeEncodeErrornếu xảy ra lỗi liên quan đến Unicode trong quá trình mã hóa. UnicodeDecodeErrornếu xảy ra lỗi liên quan đến Unicode trong quá trình giải mã. UnicodeTranslateErrornếu xảy ra lỗi liên quan đến Unicode trong quá trình dịch. ValueErrornếu một hàm nhận đối số đúng loại nhưng giá trị không đúng. ZeroDivisionError nếu toán hạng thứ hai của phép chia hoặc phép toán modulo bằng 0. Ngoại lệ do người dùng xác định

Python có nhiều loại ngoại lệ tiêu chuẩn, nhưng chúng có thể không phải lúc nào cũng phục vụ mục đích của bạn.
Chương trình của bạn có thể có loại ngoại lệ của riêng bạn.

Để tạo một ngoại lệ do người dùng định nghĩa, bạn phải tạo một lớp kế thừa từ Ngoại lệ

1
2
3
4
1
2
3
4
5
6
1

Bạn đã tạo một ngoại lệ do người dùng định nghĩa có tên là LunchError trong đoạn mã trên. Bạn có thể tăng ngoại lệ mới này nếu xảy ra lỗi

Xuất ra lỗi tùy chỉnh của bạn

1
2
3
4
5
6
2

Chương trình của bạn có thể có nhiều ngoại lệ do người dùng định nghĩa. Chương trình dưới đây đưa ra các ngoại lệ dựa trên số tiền dự án mới

1
2
3
4
5
6
3
1
2
3
4
5
6
4

Dưới đây là một số chạy mẫu

1
2
3
4
5
6
5

1
2
3
4
5
6
6

Đó là một cách thực hành tốt để đặt tất cả các ngoại lệ do người dùng xác định trong một tệp riêng biệt [các ngoại lệ. py hoặc lỗi. py]. Đây cũng là thực tế phổ biến trong các mô-đun tiêu chuẩn

Tôi có thể sử dụng thử

Khối try and except trong Python được sử dụng để bắt và xử lý các ngoại lệ . Python thực thi mã sau câu lệnh try như một phần “bình thường” của chương trình. Mã theo sau câu lệnh ngoại trừ là phản hồi của chương trình đối với bất kỳ ngoại lệ nào trong mệnh đề thử trước đó.

Chúng ta có thể sử dụng thử bắt trong vòng lặp Python không?

Làm thế nào để bạn tiếp tục một vòng lặp sau khi bắt ngoại lệ trong try catch Python? . Đặt khối try-ngoại trừ bên trong vòng lặp for để tiếp tục bắt ngoại lệ với khối thử-ngoại trừ. Use a for-loop to continue catching exceptions with a try-except block. Place a try-except block inside of a for-loop to continue catching exceptions with the try-except block.

thử như thế nào

Xử lý ngoại lệ với thử, ngoại trừ, khác và cuối cùng . e. đoạn mã giữa mệnh đề try và except First try clause is executed i.e. the code between try and except clause . Nếu không có ngoại lệ, thì chỉ mệnh đề try sẽ chạy, mệnh đề ngoại trừ sẽ không được thực thi. Nếu có bất kỳ ngoại lệ nào xảy ra, mệnh đề try sẽ bị bỏ qua và mệnh đề except sẽ chạy.

Python xử lý như thế nào

Ví dụ. Xử lý ngoại lệ Sử dụng thử. Để xử lý ngoại lệ, chúng ta phải đặt mã, result = tử số/mẫu số bên trong khối thử . Bây giờ khi một ngoại lệ xảy ra, phần còn lại của mã bên trong khối thử sẽ bị bỏ qua. Khối ngoại trừ bắt ngoại lệ và các câu lệnh bên trong khối ngoại trừ được thực thi.

Chủ Đề