Điều gì xảy ra nếu khối thử không thành công trong python?

Khi viết mã bằng Python, bạn thường có thể đoán trước các lỗi thời gian chạy ngay cả trong một chương trình đúng về mặt cú pháp và logic. Những lỗi này có thể do đầu vào không hợp lệ hoặc một số điểm không nhất quán có thể dự đoán được gây ra

Trong Python, bạn có thể sử dụng các khối

divide[27,0]

1 và
divide[27,0]

2 để xử lý hầu hết các lỗi này dưới dạng ngoại lệ một cách dễ dàng hơn

Trong hướng dẫn này, bạn sẽ học cú pháp chung của

divide[27,0]

1 và
divide[27,0]

2. Sau đó, chúng ta sẽ tiến hành mã hóa các ví dụ đơn giản, thảo luận về những gì có thể xảy ra sai sót và đưa ra các biện pháp khắc phục bằng cách sử dụng các khối
divide[27,0]

1 và
divide[27,0]

2

Cú pháp của Python Thử và loại trừ các khối

Hãy bắt đầu bằng cách tìm hiểu cú pháp của câu lệnh

divide[27,0]

1 và
divide[27,0]

2 trong Python. Mẫu chung được hiển thị bên dưới

________số 8

Hãy xem các khối khác nhau được sử dụng để làm gì

  • Khối
    divide[27,0]
    
    
    1 là khối câu lệnh bạn muốn thử thực hiện. Tuy nhiên, có thể có lỗi thời gian chạy do một ngoại lệ và khối này có thể không hoạt động như dự kiến
  • Khối
    divide[27,0]
    
    
    2 được kích hoạt khi khối
    divide[27,0]
    
    
    1 bị lỗi do ngoại lệ. Nó chứa một tập hợp các câu lệnh thường cung cấp cho bạn một số ngữ cảnh về những gì đã xảy ra bên trong khối
    divide[27,0]
    
    
    1
  • Bạn phải luôn đề cập đến loại lỗi mà bạn định bắt làm ngoại lệ bên trong khối
    divide[27,0]
    
    
    2, được biểu thị bằng trình giữ chỗ
    divide[27,0]
    
    
    44 trong đoạn mã trên
  • Bạn cũng có thể sử dụng
    divide[27,0]
    
    
    2 mà không chỉ định
    divide[27,0]
    
    
    44. Tuy nhiên, đây không phải là một phương pháp được khuyến nghị vì bạn không tính đến các loại lỗi khác nhau có thể xảy ra
Khi cố gắng thực thi mã bên trong khối
divide[27,0]

1, cũng có khả năng xảy ra nhiều lỗi

Ví dụ: bạn có thể đang truy cập một danh sách bằng chỉ mục nằm ngoài phạm vi, sử dụng khóa từ điển sai và cố mở một tệp không tồn tại - tất cả đều nằm trong khối

divide[27,0]

1

Trong trường hợp này, bạn có thể gặp phải

divide[27,0]

49,
divide[27,0]

00 và
divide[27,0]

01. Và bạn phải thêm bao nhiêu khối
divide[27,0]

2 bằng số lỗi mà bạn dự đoán, một khối cho mỗi loại lỗi

  • Khối
    divide[27,0]
    
    
    03 chỉ được kích hoạt nếu khối
    divide[27,0]
    
    
    1 được thực thi mà không có lỗi. Điều này có thể hữu ích khi bạn muốn thực hiện hành động tiếp theo khi khối
    divide[27,0]
    
    
    1 thành công. Ví dụ: nếu bạn thử mở một tệp thành công, bạn có thể muốn đọc nội dung của tệp đó
  • Khối
    divide[27,0]
    
    
    06 luôn được thực thi, bất kể điều gì xảy ra trong các khối khác. Điều này hữu ích khi bạn muốn giải phóng tài nguyên sau khi thực thi một khối mã cụ thể
Ghi chú. Các khối
divide[27,0]

03 và
divide[27,0]

06 là tùy chọn. Trong hầu hết các trường hợp, bạn chỉ có thể sử dụng khối
divide[27,0]

1 để thử làm điều gì đó và bắt lỗi dưới dạng ngoại lệ bên trong khối
divide[27,0]

2

Trong vài phút tới, bạn sẽ sử dụng những gì bạn đã học được cho đến nay để xử lý các ngoại lệ trong Python. Bắt đầu nào

Cách xử lý một
divide[27,0]

11 trong Python

Hãy xem xét hàm

divide[27,0]

12 được hiển thị bên dưới. Nó nhận hai đối số –
divide[27,0]

13 và
divide[27,0]

14 – và trả về thương của phép chia
divide[27,0]

15

divide[27,0]

6

▶ Gọi hàm khác số trả về kết quả như ý

divide[27,0]

7

Mã này hoạt động tốt cho đến khi bạn thử chia cho số không

divide[27,0]

Bạn thấy rằng chương trình gặp sự cố khi ném một

divide[27,0]

11

divide[27,0]

4

Bạn có thể xử lý phép chia này bằng 0 như một ngoại lệ bằng cách thực hiện như sau

  • Trong khối
    divide[27,0]
    
    
    1, thực hiện cuộc gọi đến hàm
    divide[27,0]
    
    
    12. Về bản chất, bạn đang cố chia
    divide[27,0]
    
    
    13 cho
    divide[27,0]
    
    
    14
  • Xử lý trường hợp khi
    divide[27,0]
    
    
    14 là
    divide[27,0]
    
    
    62 như một ngoại lệ bên trong khối
    divide[27,0]
    
    
    2
  • Trong ví dụ này, bạn có thể trừ
    divide[27,0]
    
    
    11 bằng cách in một thông báo thông báo cho người dùng rằng họ đã thử chia cho 0

Điều này được hiển thị trong đoạn mã dưới đây

divide[27,0]

0

Với một đầu vào hợp lệ, mã vẫn hoạt động tốt

divide[27,0]

1

Khi bạn cố gắng giảm xuống 0, bạn sẽ được thông báo về ngoại lệ xảy ra và chương trình kết thúc một cách êm đẹp

divide[27,0]

6

Cách xử lý một
divide[27,0]

65 trong Python

Trong phần này, bạn sẽ thấy cách bạn có thể sử dụng

divide[27,0]

1 và
divide[27,0]

2 để xử lý một
divide[27,0]

65 trong Python

▶ Xem xét hàm sau đây

divide[27,0]

69 nhận vào một số làm đối số, thêm 10 vào số đó và trả về kết quả của phép cộng này

divide[27,0]

7

Bạn có thể gọi hàm

divide[27,0]

69 với bất kỳ số nào và nó sẽ hoạt động tốt, như hình bên dưới

divide[27,0]

9

Bây giờ hãy thử gọi

divide[27,0]

69 bằng
divide[27,0]

72 thay vì
divide[27,0]

73

divide[27,0]

60

Bạn sẽ nhận thấy rằng chương trình của bạn gặp sự cố với thông báo lỗi sau

divide[27,0]

61

Thông báo lỗi

divide[27,0]

74 giải thích rằng bạn chỉ có thể nối hai chuỗi chứ không thể thêm số nguyên vào chuỗi

Bây giờ, bạn có những điều sau đây

  • Cho một số
    divide[27,0]
    
    
    75, hãy thử gọi hàm
    divide[27,0]
    
    
    69 với đối số là
    divide[27,0]
    
    
    75. Nếu đối số là loại hợp lệ, không có ngoại lệ
  • Mặt khác, khối
    divide[27,0]
    
    
    2 tương ứng với
    divide[27,0]
    
    
    65 được kích hoạt, thông báo cho người dùng rằng đối số thuộc loại không hợp lệ

Điều này được giải thích dưới đây

divide[27,0]

62

Vì bạn hiện đã xử lý

divide[27,0]

65 như một ngoại lệ, nên bạn chỉ được thông báo rằng đối số thuộc loại không hợp lệ

divide[27,0]

63

Cách xử lý một
divide[27,0]

49 trong Python

Nếu bạn đã từng làm việc với các danh sách Python hoặc bất kỳ Python iterable nào trước đây, có lẽ bạn sẽ gặp phải

divide[27,0]

49

Điều này là do thường khó theo dõi tất cả các thay đổi đối với các lần lặp. Và bạn có thể đang cố truy cập một mục tại một chỉ mục không hợp lệ

▶ Trong ví dụ này, danh sách

divide[27,0]

93 có 4 mục. Các chỉ số hợp lệ là 0, 1, 2 và 3 và -1, -2, -3, -4 nếu bạn sử dụng chỉ mục phủ định

divide[27,0]

94 là một chỉ mục hợp lệ, bạn thấy rằng mục tại chỉ mục
divide[27,0]

94, là
divide[27,0]

96, được in ra

divide[27,0]

64

Nếu bạn thử truy cập vào một mục tại chỉ mục nằm ngoài phạm vi của các chỉ mục hợp lệ, bạn sẽ gặp phải

divide[27,0]

49

________ 365 ________ 366

Nếu bạn đã quen thuộc với mẫu này, bây giờ bạn sẽ sử dụng

divide[27,0]

1 và
divide[27,0]

2 để xử lý các lỗi chỉ mục

▶ Trong đoạn mã bên dưới, bạn thử truy cập vào mục tại chỉ mục được chỉ định bởi

divide[27,0]

600

divide[27,0]

67

Ở đây,

divide[27,0]

600 [
divide[27,0]

602] là một chỉ mục hợp lệ và mục tại chỉ mục cụ thể được in ra

divide[27,0]

68

Nếu

divide[27,0]

600 nằm ngoài phạm vi hợp lệ cho các chỉ số, thì khối except sẽ bắt
divide[27,0]

49 làm ngoại lệ và không còn thông báo lỗi dài nữa. 🙂

divide[27,0]

69

Thay vào đó, thông báo rằng

divide[27,0]

600 nằm ngoài phạm vi chỉ số hợp lệ được hiển thị

divide[27,0]

70

Cách xử lý một
divide[27,0]

00 trong Python

Bạn có thể đã gặp phải

divide[27,0]

00 khi làm việc với từ điển Python

▶ Hãy xem xét ví dụ này khi bạn có một cuốn từ điển

divide[27,0]

608

divide[27,0]

71
  • Từ điển
    divide[27,0]
    
    
    608 có 3 cặp key-value là
    divide[27,0]
    
    
    610,
    divide[27,0]
    
    
    611 và
    divide[27,0]
    
    
    612
  • Bây giờ, bạn thử gõ vào từ điển và truy cập giá trị tương ứng với khóa
    divide[27,0]
    
    
    613

Theo dự kiến, bạn sẽ nhận được một

divide[27,0]

00

divide[27,0]

72

Bạn có thể xử lý ________ 200 gần giống như cách bạn xử lý ________ 149

  • Bạn có thể thử truy cập giá trị tương ứng với khóa được chỉ định bởi
    divide[27,0]
    
    
    617
  • Nếu
    divide[27,0]
    
    
    617 thực sự là một khóa hợp lệ, giá trị tương ứng sẽ được in ra
  • Nếu bạn gặp phải một ngoại lệ do khóa không tồn tại, bạn sử dụng khối
    divide[27,0]
    
    
    2 để cho người dùng biết

Điều này được giải thích trong đoạn mã dưới đây

divide[27,0]

73
divide[27,0]

74

▶ Nếu bạn muốn cung cấp ngữ cảnh bổ sung, chẳng hạn như tên của khóa không hợp lệ, bạn cũng có thể làm điều đó. Có thể key bị viết sai chính tả khiến nó không hợp lệ. Trong trường hợp này, việc cho người dùng biết khóa được sử dụng có thể sẽ giúp họ sửa lỗi đánh máy

Bạn có thể làm điều này bằng cách bắt khóa không hợp lệ là

divide[27,0]

620 và sử dụng nó trong thông báo được in khi ngoại lệ xảy ra

divide[27,0]

75

▶ Lưu ý cách tên của phím cũng được in ra

divide[27,0]

76

Cách xử lý một
divide[27,0]

01 trong Python

Một lỗi phổ biến khác xảy ra khi làm việc với tệp trong Python là lỗi

divide[27,0]

01

▶ Trong ví dụ sau, bạn đang cố mở tệp

divide[27,0]

623 bằng cách chỉ định đường dẫn của nó tới hàm
divide[27,0]

624. Và bạn muốn đọc tệp và in ra nội dung của tệp

Tuy nhiên, bạn chưa tạo tệp ở vị trí đã chỉ định

Nếu bạn thử chạy đoạn mã bên dưới, bạn sẽ nhận được một

divide[27,0]

01

divide[27,0]

77
divide[27,0]

78

Và sử dụng

divide[27,0]

1 và
divide[27,0]

2, bạn có thể làm như sau

  • Hãy thử mở tệp trong khối
    divide[27,0]
    
    
    1
  • Xử lý
    divide[27,0]
    
    
    01 trong khối
    divide[27,0]
    
    
    2 bằng cách cho người dùng biết rằng họ đã cố mở một tệp không tồn tại
  • Nếu khối
    divide[27,0]
    
    
    1 thành công và tệp tồn tại, hãy đọc và in ra nội dung của tệp
  • Trong khối ________ 206, hãy đóng tệp để không lãng phí tài nguyên. Nhớ lại cách đóng tệp bất kể điều gì xảy ra trong các bước mở và đọc tệp
divide[27,0]

79

Lưu ý cách bạn đã xử lý lỗi như một ngoại lệ và chương trình kết thúc một cách duyên dáng với thông báo bên dưới

divide[27,0]

0

▶ Hãy xem xét trường hợp khối

divide[27,0]

03 được kích hoạt. Tệp
divide[27,0]

623 hiện có tại đường dẫn được đề cập trước đó

Và đây là nội dung của tệp

divide[27,0]

623

Bây giờ, chạy lại đoạn mã trước đó hoạt động như mong đợi

Lần này, tệp

divide[27,0]

623 xuất hiện, khối
divide[27,0]

03 được kích hoạt và nội dung của nó được in ra, như hình bên dưới

Tôi hy vọng điều này làm rõ cách bạn có thể xử lý các ngoại lệ khi làm việc với tệp

Phần kết luận

Trong hướng dẫn này, bạn đã học cách sử dụng các câu lệnh

divide[27,0]

1 và
divide[27,0]

2 trong Python để xử lý các ngoại lệ

Bạn đã mã hóa các ví dụ để hiểu loại ngoại lệ nào có thể xảy ra và cách bạn có thể sử dụng

divide[27,0]

2 để phát hiện các lỗi phổ biến nhất

Hy vọng bạn thích hướng dẫn này. Mã hóa vui vẻ. Cho đến lần sau. ]

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

Bala Priya C

Tôi là một nhà phát triển và nhà văn kỹ thuật đến từ Ấn Độ. Tôi viết hướng dẫn về mọi thứ liên quan đến lập trình và máy học

Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Điều gì xảy ra nếu thử không thành công trong Python?

Nếu bất kỳ mã nào trong câu lệnh try gây ra lỗi, việc thực thi mã sẽ dừng lại và chuyển sang câu lệnh ngoại trừ . Tại đây, nó sẽ thực thi mã và nếu vì bất kỳ lý do gì, có lỗi trong câu lệnh ngoại trừ, bạn sẽ nhận được thông báo Trong khi xử lý ngoại lệ trên, một ngoại lệ khác đã xảy ra.

Điều gì xảy ra nếu xảy ra lỗi trong khối thử?

Mã trong khối thử được thực thi trước và nếu nó đưa ra một ngoại lệ, mã trong khối bắt sẽ được thực thi .

Điều gì xảy ra nếu một ngoại lệ xảy ra bên trong khối thử trong Python?

Thử. khối chứa một hoặc nhiều câu lệnh có khả năng gặp ngoại lệ. Nếu các câu lệnh trong khối này được thực thi mà không có ngoại lệ, ngoại trừ tiếp theo. khối bị bỏ qua. Nếu ngoại lệ xảy ra, luồng chương trình được chuyển sang ngoại lệ. chặn .

Bạn có thể đưa ra lỗi trong khối thử không?

Có, nó sẽ bắt ApplicationException vì nó bắt nguồn từ Exception . Xử lý ngoại lệ cơ sở sẽ ổn trong hầu hết các trường hợp trừ khi bạn cần đăng nhập hoặc làm điều gì đó với một loại ngoại lệ khác.

Chủ Đề