Bạn có thể thử bên trong một con trăn ngoại trừ không?

('Yeah ! Your answer is :', 1)
4
Sorry ! You are dividing by zero
36
('Yeah ! Your answer is :', 1)
8
Sorry ! You are dividing by zero
38
Sorry ! You are dividing by zero
39
Sorry ! You are dividing by zero
60
Sorry ! You are dividing by zero
0
Sorry ! You are dividing by zero
0
Sorry ! You are dividing by zero
63
Sorry ! You are dividing by zero
64
Sorry ! You are dividing by zero
65

Bởi Eric Carb

Luồng kiểm soát ngoại lệ - Thử, Ngoại trừ, Khác, Cuối cùng

Ngoại lệ trong Python là đối tượng đại diện cho lỗi. Các ngoại lệ có thể được đưa ra theo nhiều cách, chẳng hạn như chuyển các đối số không hợp lệ cho các hàm (“Boo” + 7), thực hiện một số thao tác bất hợp pháp (12/0) hoặc thậm chí rõ ràng (tăng TypeError). Theo mặc định, các ngoại lệ dừng các chương trình Python và in Traceback ra bàn điều khiển với thông tin về ngoại lệ và cách nó được tạo ra. Tuy nhiên, câu lệnh try tồn tại để cung cấp luồng điều khiển cho các ngoại lệ để bạn có thể ngăn chương trình của mình bị lỗi và thậm chí sử dụng các đối tượng ngoại lệ để có lợi cho bạn. Điều này thường được gọi là "bắt" một ngoại lệ. Câu lệnh thử trông như thế này

thử

Mã có ngoại lệ mà bạn muốn bắt. Nếu một ngoại lệ được đưa ra, luồng điều khiển sẽ rời khỏi khối này ngay lập tức và đi đến khối ngoại trừ

ngoại trừ [(Ngoại lệ [, Ngoại lệ])] [dưới dạng VAR]

Mã này chỉ được thực thi nếu một ngoại lệ được đưa ra trong khối thử. Mã được thực thi trong khối này giống như mã bình thường. nếu có ngoại lệ, nó sẽ không tự động bị bắt (và có thể dừng chương trình)

Bạn có thể tùy chọn đặt tên cho các loại ngoại lệ cụ thể trong các câu lệnh except, trong trường hợp đó, khối sẽ chỉ được thực thi nếu một trong các ngoại lệ được đặt tên là ngoại lệ được đưa ra trong lần thử. Khi đặt tên cho nhiều ngoại lệ, hãy sử dụng một tuple. Việc có nhiều câu lệnh ngoại trừ là hợp pháp, mỗi câu lệnh đặt tên cho các loại ngoại lệ khác nhau. Nếu không có ngoại lệ nào được đặt tên trong câu lệnh ngoại trừ, nó sẽ bắt tất cả các ngoại lệ;

Bao gồm biểu thức as với câu lệnh except cho phép bạn lưu trữ đối tượng ngoại lệ được nêu trong khối try trong một biến và sử dụng nó trong khối này. Để lưu trữ một ngoại lệ trong một biến khi không có tên nào được đặt tên, thay vào đó hãy đặt tên là “Ngoại lệ” (i. e. ngoại trừ Ngoại lệ như e). Chỉ có một biến có thể được liệt kê sau khi

Khối này là bắt buộc (ngay cả khi tất cả những gì nó có là vượt qua)

[khác. ]

Mã này chỉ được thực thi nếu không có ngoại lệ nào được đưa ra trong khối thử. Mã được thực thi trong khối này giống như mã bình thường. nếu có ngoại lệ, nó sẽ không tự động bị bắt (và có thể dừng chương trình). Lưu ý rằng nếu khối lệnh else được thực thi thì khối lệnh ngoại trừ không được thực thi và ngược lại. Khối này là tùy chọn

[cuối cùng. ]

Mã này luôn thực thi sau các khối khác, ngay cả khi có một ngoại lệ chưa được phát hiện (rõ ràng là không gây ra sự cố) hoặc một câu lệnh trả về ở một trong các khối khác. Mã được thực thi trong khối này giống như mã bình thường. nếu có ngoại lệ, nó sẽ không tự động bị bắt (và có thể dừng chương trình). Khối này cũng là tùy chọn

Trong lập trình Python, xử lý ngoại lệ cho phép lập trình viên kích hoạt điều khiển luồng. Và nó không có. các ngoại lệ tích hợp để bắt lỗi trong trường hợp mã của bạn bị hỏng. Sử dụng try-ngoại trừ là cách phổ biến và tự nhiên nhất để xử lý các lỗi không mong muốn cùng với nhiều cấu trúc xử lý ngoại lệ khác. Trong hướng dẫn này, bạn sẽ khám phá một số kỹ thuật tốt nhất để sử dụng try-ngoại trừ trong Python

Xử lý lỗi hoặc Xử lý ngoại lệ trong Python có thể được thực thi bằng cách thiết lập các ngoại lệ. Sử dụng khối try, bạn có thể triển khai một ngoại lệ và xử lý lỗi bên trong khối ngoại trừ. Bất cứ khi nào mã bị hỏng bên trong khối thử, luồng mã thông thường sẽ dừng lại và điều khiển sẽ được chuyển sang khối ngoại trừ để xử lý lỗi.

Cũng nên đọc – Tìm hiểu về Xử lý ngoại lệ Python  từ đầu.

Tại sao nên sử dụng Mệnh đề Try-Except/Try-Except-else? Với sự trợ giúp của try-except và try-except-else, bạn có thể tránh được nhiều vấn đề không xác định có thể phát sinh . Ví dụ: mã Python sử dụng kiểu LBYL (Hãy nhìn trước khi bạn nhảy) có thể dẫn đến các điều kiện chủng tộc. Ở đây, mệnh đề try-ngoại trừ có thể đến giải cứu bạn. Ngoài ra, có những trường hợp mã của bạn phụ thuộc rất nhiều vào một số thông tin có thể bị lỗi thời cho đến thời điểm bạn nhận được. Ví dụ: mã thực hiện cuộc gọi đến os. đường dẫn. tồn tại hoặc xếp hàng. đầy đủ có thể không thành công vì các chức năng này có thể trả về dữ liệu cũ khi bạn sử dụng nó. Lựa chọn khôn ngoan hơn ở đây là tuân theo kiểu try-except-else trong mã của bạn để quản lý các trường hợp trên một cách đáng tin cậy hơn.

Nâng cao ngoại lệ cũng được cho phép trong Python. Nó có nghĩa là bạn có thể ném hoặc đưa ra một ngoại lệ bất cứ khi nào cần thiết. Bạn có thể làm điều đó đơn giản bằng cách gọi [raise Exception(‘Test error. ’)] từ mã của bạn. Sau khi được nâng lên, ngoại lệ sẽ dừng thực thi hiện tại như bình thường và sẽ tiếp tục đi lên trong ngăn xếp cuộc gọi cho đến khi được xử lý.

Tại sao nên sử dụng Ngoại lệ? Chúng không chỉ giúp giải quyết các vấn đề phổ biến như điều kiện chủng tộc mà còn rất hữu ích trong việc kiểm soát lỗi trong các lĩnh vực như vòng lặp, xử lý tệp, giao tiếp cơ sở dữ liệu, truy cập mạng và .

Do đó, chúng tôi sẽ đề cập đến các vấn đề rộng hơn và cung cấp giải pháp trong bài đăng này. Xin lưu ý rằng xử lý ngoại lệ là một nghệ thuật mang lại cho bạn sức mạnh to lớn để viết mã chất lượng và mạnh mẽ. Vì vậy, hãy chuẩn bị tinh thần để đọc một số lưu ý về các trường hợp ngoại lệ cùng với các cách tốt nhất để xử lý chúng

Phải đọc – Mọi thứ bạn nên biết về  Tệp sao chép Python  [Tệp Python I/O].

con trăn. Mẹo sử dụng Try-Exception, Try-Exception-Else, v.v.

Bạn có thể thử bên trong một con trăn ngoại trừ không?
Cách sử dụng tốt nhất Try-Exception trong Python
  • Cách xử lý một ngoại lệ tùy ý
  • Bắt nhiều ngoại lệ trong một khối ngoại trừ
  • Xử lý nhiều ngoại lệ với một khối ngoại trừ
  • Tăng lại các ngoại lệ trong Python
  • Khi nào sử dụng mệnh đề khác
  • Sử dụng [mệnh đề cuối cùng]
  • Sử dụng từ khóa As để nắm bắt các loại ngoại lệ cụ thể
  • Phương pháp hay nhất để tăng ngoại lệ theo cách thủ công
  • Cách bỏ qua các lỗi và tiếp tục thực hiện
  • Các lỗi ngoại lệ phổ biến nhất trong Python
  • Ví dụ về các ngoại lệ phổ biến nhất trong Python

1. Cách xử lý một ngoại lệ tùy ý

Đôi khi, bạn có thể cần một cách để cho phép bất kỳ ngoại lệ tùy ý nào và cũng muốn có thể hiển thị thông báo lỗi hoặc ngoại lệ

Có thể dễ dàng đạt được bằng cách sử dụng các ngoại lệ Python. Kiểm tra mã dưới đây. Trong khi thử nghiệm, bạn có thể đặt mã bên trong khối thử trong ví dụ bên dưới

try:
    #your code
except Exception as ex:
    print(ex)

Trở lại đầu trang

2. Bắt nhiều ngoại lệ trong một khối ngoại trừ

Bạn có thể bắt nhiều ngoại lệ trong một khối ngoại trừ. Xem ví dụ bên dưới

except (Exception1, Exception2) as e:
    pass

Xin lưu ý rằng bạn có thể phân tách các ngoại lệ khỏi biến bằng dấu phẩy có thể áp dụng trong Python 2. 2/6. 7. Nhưng bạn không thể làm điều đó trong Python 3. Vì vậy, bạn nên sử dụng từ khóa [as]

Trở lại đầu trang

3. Xử lý nhiều ngoại lệ với một khối ngoại trừ

Có nhiều cách để xử lý nhiều ngoại lệ. Cái đầu tiên trong số chúng yêu cầu đặt tất cả các ngoại lệ có khả năng xảy ra dưới dạng một bộ. Vui lòng xem từ bên dưới

try:
    file = open('input-file', 'open mode')
except (IOError, EOFError) as e:
    print("Testing multiple exceptions. {}".format(e.args[-1]))

Phương pháp tiếp theo là xử lý từng ngoại lệ trong một khối ngoại trừ chuyên dụng. Bạn có thể thêm bao nhiêu khối ngoại trừ nếu cần. Xem ví dụ bên dưới

try:
    file = open('input-file', 'open mode')
except EOFError as ex:
    print("Caught the EOF error.")
    raise ex
except IOError as e:
    print("Caught the I/O error.")
    raise ex

Điều cuối cùng nhưng không kém phần quan trọng là sử dụng ngoại trừ mà không đề cập đến bất kỳ thuộc tính ngoại lệ nào

________số 8

Phương pháp này có thể hữu ích nếu bạn không có bất kỳ manh mối nào về ngoại lệ có thể do chương trình của bạn đưa ra

Trở lại đầu trang

4. Tăng lại các ngoại lệ trong Python

Các ngoại lệ sau khi được nâng lên sẽ tiếp tục chuyển sang các phương thức gọi cho đến khi được xử lý. Mặc dù bạn có thể thêm một mệnh đề ngoại trừ có thể chỉ có lệnh gọi [raise] mà không có bất kỳ đối số nào. Nó sẽ dẫn đến việc nâng cao lại ngoại lệ

Xem mã ví dụ dưới đây

try:
    # Intentionally raise an exception.
    raise Exception('I learn Python!')
except:
    print("Entered in except.")
    # Re-raise the exception.
    raise

đầu ra

('Yeah ! Your answer is :', 1)
0

Trở lại đầu trang

5. Khi nào sử dụng mệnh đề khác

Sử dụng một mệnh đề khác ngay sau khối try-ngoại trừ. Mệnh đề khác sẽ chỉ bị tấn công nếu không có ngoại lệ nào được đưa ra. Câu lệnh khác phải luôn đi trước các khối ngoại trừ

Trong các khối khác, bạn có thể thêm mã mà bạn muốn chạy khi không có lỗi xảy ra

Xem ví dụ bên dưới. Trong ví dụ này, bạn có thể thấy vòng lặp while chạy vô tận. Mã đang yêu cầu đầu vào của người dùng và sau đó phân tích cú pháp bằng hàm [int()] tích hợp. Nếu người dùng nhập giá trị bằng 0, thì khối ngoại trừ sẽ bị tấn công. Nếu không, mã sẽ chảy qua khối khác

('Yeah ! Your answer is :', 1)
1

Trở lại đầu trang

6. Sử dụng [mệnh đề cuối cùng]

Nếu bạn có một mã mà bạn muốn chạy trong mọi tình huống, thì hãy viết mã đó bên trong [khối cuối cùng]. Python sẽ luôn chạy các hướng dẫn được mã hóa trong [khối cuối cùng]. Đây là cách phổ biến nhất để thực hiện các tác vụ dọn dẹp. Bạn cũng có thể đảm bảo quá trình dọn dẹp diễn ra suôn sẻ

Một lỗi được phát hiện bởi mệnh đề try. Sau khi mã trong khối ngoại trừ được thực thi, hướng dẫn trong [mệnh đề cuối cùng] sẽ chạy

Xin lưu ý rằng [khối cuối cùng] sẽ LUÔN chạy, ngay cả khi bạn đã quay lại trước nó

Xem ví dụ bên dưới

('Yeah ! Your answer is :', 1)
2

đầu ra

('Yeah ! Your answer is :', 1)
3

Trở lại đầu trang

7. Sử dụng từ khóa As để nắm bắt các loại ngoại lệ cụ thể

With the help of as , you can create a new object. And you can also the exception object. Here, the below example, we are creating the IOError object and then using it within the clause.

except (Exception1, Exception2) as e:
    pass
0

đầu ra

except (Exception1, Exception2) as e:
    pass
1

Trở lại đầu trang

8. Phương pháp hay nhất để tăng ngoại lệ theo cách thủ công

Tránh đưa ra các ngoại lệ chung vì nếu bạn làm như vậy, thì tất cả các ngoại lệ cụ thể khác cũng phải bị bắt. Do đó, cách tốt nhất là đưa ra ngoại lệ cụ thể nhất gần với vấn đề của bạn

Ví dụ xấu

except (Exception1, Exception2) as e:
    pass
2

đầu ra

except (Exception1, Exception2) as e:
    pass
3

Thực hành tốt nhất

Ở đây, chúng tôi đang đưa ra một loại ngoại lệ cụ thể, không phải là một loại ngoại lệ chung chung. Và chúng tôi cũng đang sử dụng tùy chọn args để in các đối số không chính xác nếu có. Hãy xem ví dụ dưới đây

except (Exception1, Exception2) as e:
    pass
4

đầu ra

except (Exception1, Exception2) as e:
    pass
5

Trở lại đầu trang

9. Cách bỏ qua các lỗi và tiếp tục thực hiện

Tốt nhất, bạn không nên làm điều này. Nhưng nếu bạn vẫn muốn làm, hãy làm theo đoạn mã dưới đây để xem phương pháp phù hợp

except (Exception1, Exception2) as e:
    pass
6

đầu ra

except (Exception1, Exception2) as e:
    pass
7

Trở lại đầu trang

Bây giờ, hãy xem một số ngoại lệ phổ biến nhất của Python và các ví dụ của chúng

Các lỗi ngoại lệ phổ biến nhất

  • IOError – Xảy ra lỗi như tệp không mở được.
  • ImportError – Nếu không thể tải hoặc định vị mô-đun python.
  • Lỗi giá trị – Xảy ra nếu một hàm nhận được đối số đúng loại nhưng giá trị không phù hợp.
  • KeyboardInterrupt – Nó bị tấn công khi người dùng nhập phím ngắt (i. e. Control-C hoặc phím Del)
  • Lỗi EOF – Lỗi này sẽ tăng lên nếu các hàm đầu vào (input()/raw_input()) chạm vào điều kiện cuối tệp (EOF) nhưng không đọc bất kỳ dữ liệu nào.

Trở lại đầu trang

Ví dụ về các ngoại lệ phổ biến nhất

except (Exception1, Exception2) as e:
    pass
8

Trở lại đầu trang

Tóm tắt – Cách sử dụng tốt nhất Try-Exception trong Python

trong khi lập trình chắc chắn sẽ xảy ra lỗi. Đó là sự thật không ai có thể bỏ qua. Và có thể có nhiều lý do dẫn đến lỗi như đầu vào của người dùng không tốt, không đủ quyền đối với tệp, không có sẵn tài nguyên mạng, không đủ bộ nhớ hoặc rất có thể là do lỗi của lập trình viên

Dù sao đi nữa, tất cả những điều này có thể được xử lý nếu mã của bạn sử dụng xử lý ngoại lệ và triển khai nó với các cấu trúc như try-ngoại trừ hoặc tr-ngoại trừ-khác, thử-ngoại trừ-cuối cùng. Hy vọng, bạn sẽ thích đọc hướng dẫn trên

Nếu bạn thích bài đăng, xin đừng bỏ lỡ việc chia sẻ nó với bạn bè và trên mạng xã hội (facebook/twitter)

Bạn có thể thử một ngoại trừ Python không?

Câu lệnh try… ngoại trừ Python chạy mã bên dưới câu lệnh “thử” . Nếu mã này không thực thi thành công, chương trình sẽ dừng lại ở dòng gây ra lỗi và mã “ngoại trừ” sẽ chạy. Khối thử cho phép bạn kiểm tra một khối mã để tìm lỗi.

Bạn có thể đặt một thử bên trong ngoại trừ?

Khi sử dụng khối thử, bạn có thể triển khai một ngoại lệ và xử lý lỗi bên trong khối ngoại trừ . Bất cứ khi nào mã bị hỏng bên trong khối thử, luồng mã thông thường sẽ dừng lại và điều khiển sẽ được chuyển sang khối ngoại trừ để xử lý lỗi. Cũng đọc – Tìm hiểu xử lý ngoại lệ Python từ đầu.

bạn có thể có 2 thử

Bằng cách xử lý nhiều ngoại lệ, một chương trình có thể phản hồi các ngoại lệ khác nhau mà không chấm dứt nó. Trong Python, các khối ngoại lệ thử có thể được sử dụng để bắt và phản hồi một hoặc nhiều ngoại lệ . Trong trường hợp một quy trình phát sinh nhiều ngoại lệ có thể xảy ra, tất cả chúng có thể được xử lý bằng một mệnh đề ngoại trừ duy nhất.