⊗pyPmExcCt 75 of 129 menu

Bắt ngoại lệ trong Python

Trong Python so với các ngôn ngữ lập trình khác có rất nhiều tình huống gây ra ngoại lệ.

Chúng ta hãy xem xét chúng chi tiết hơn. Giả sử chúng ta có một danh sách:

lst = [1, 2, 3]

Hãy truy cập một phần tử không tồn tại trong danh sách:

print(lts[4])

Sau khi thực thi mã, một lỗi (ngoại lệ) sẽ được hiển thị:

IndexError: list index out of range

Nếu chúng ta cần tiếp tục làm việc mà không hiển thị ngoại lệ, cần phải bắt nó bằng cấu trúc try-except. Nó có cú pháp như sau:

try: # mã có thể gây ra ngoại lệ except: # xử lý lỗi

Trong khối try nên đặt mã có thể chứa ngoại lệ. Nếu khi thực thi mã này mà xảy ra một tình huống ngoại lệ, thì việc thực thi mã sẽ không dừng lại, mà sẽ chuyển sang mã trong khối except. Trong khối này nên viết ra một thông báo mô tả càng chính xác càng tốt bản chất của lỗi đã xảy ra.

Nếu khi thực thi khối try không xảy ra bất kỳ tình huống ngoại lệ nào, thì mã hữu ích sẽ được thực thi, còn mã từ khối except thì sẽ không.

Hãy bắt ngoại lệ của chúng ta khi truy cập phần tử không tồn tại trong danh sách. Để làm điều này, trong khối try đặt mã có khả năng gây lỗi. Còn trong khối except chỉ định việc in ra màn hình thông báo 'error: elem is not exist':

lst = [1, 2, 3] try: print(lst[4]) except: print('error: elem is not exist')

Sau khi thực thi mã, kết quả sẽ là:

'error: elem is not exist'

Sau khi học cấu trúc try-except, phong cách viết mã của bạn phải thay đổi. Bây giờ tất cả những chỗ có thể phát sinh tình huống ngoại lệ, cần phải bọc trong try, còn trong khối except viết ra phản ứng với ngoại lệ này.

Hãy hỏi người dùng hai số. Chia một số cho số kia. Hãy bắt tình huống ngoại lệ chia cho không.

Hãy hỏi người dùng một số. Tìm căn bậc hai của số này. Hãy bắt tình huống ngoại lệ khi trích xuất căn bậc hai từ số âm.

Cho một danh sách. Hãy hỏi người dùng một số nguyên. Lấy phần tử của danh sách có số thứ tự mà người dùng đã nhập. Hãy bắt tình huống ngoại lệ sẽ xảy ra nếu người dùng nhập một số ngoài phạm vi của danh sách.

Cho mã sau:

num = '5' res = num + 2 print(res)

Có gì không ổn với mã này? Hãy sửa chữa các thiếu sót của nó.

Cho mã sau:

lst = [1, 2, 3, 4] def getElem(iter): print(iter[4]) getElem(lst)

Có gì không ổn với mã này? Hãy sửa chữa các thiếu sót của nó.

Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối