Xử lý nhiều ngoại lệ
Thuộc phần Logic và luồng chương trình trong hành trình Python của Coddy. Bài học 65 trên 78.
Trong Python, ta có thể xử lý các loại ngoại lệ khác nhau trong những khối except riêng biệt. Cách này cho phép ta phản hồi khác nhau tùy theo lỗi cụ thể xảy ra.
Bắt đầu với cấu trúc try-except cơ bản:
try:
# Đoạn code có thể gây ra ngoại lệ
pass
except Exception as e:
# Xử lý mọi ngoại lệ
passĐể xử lý nhiều ngoại lệ, hãy thêm các khối except cụ thể:
try:
number = int(input("Enter a number: "))
result = 10 / number
print(result)
except ValueError:
print("That's not a valid number!")
except ZeroDivisionError:
print("Cannot divide by zero!")Bạn cũng có thể bắt nhiều loại ngoại lệ trong cùng một khối except:
try:
# Một đoạn code
pass
except (ValueError, TypeError):
print("Invalid input type!")Thứ tự của các khối except rất quan trọng, luôn đặt các ngoại lệ cụ thể hơn trước các ngoại lệ tổng quát hơn.
Thử thách
DễTạo một hàm (function) có tên process_data để:
- Nhận một chuỗi đầu vào biểu thị dữ liệu có thể có
- Thử chuyển chuỗi đó thành số nguyên (integer), rồi tính 100 chia cho số nguyên đó
- Trả về kết quả
- Xử lý ít nhất 3 ngoại lệ có thể xảy ra:
ValueErrornếu không thể chuyển đầu vào thành số nguyên (in ra "Input must be a number!")ZeroDivisionErrornếu đầu vào là 0 (in ra "Cannot divide by zero!")- Mọi ngoại lệ khác bằng một trình xử lý tổng quát (in ra "An unexpected error occurred!")
Tự làm thử
def process_data(input_string):
try:
# Thử chuyển chuỗi đầu vào thành số nguyên
# Tính 100 chia cho giá trị đầu vào
# Trả về kết quả
except ValueError:
# Xử lý trường hợp không thể chuyển đầu vào thành số nguyên
except ZeroDivisionError:
# Xử lý trường hợp đầu vào bằng 0
except:
# Xử lý các ngoại lệ khác không mong đợi
return NoneBài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Logic và luồng chương trình
4Ứng dụng sổ liên lạc
Hiển thị menuThêm liên hệ7Tập hợp phần 2
Phép toán toán học phần 1Phép toán toán học phần 2Ôn tập: Săn tìm kho báuTập hợp con và tập hợp chaLặp qua các tập hợpÔn tập: Theo dõi giải đấu10Tạo danh sách bằng cú pháp rút gọn cơ bản
Cú phápTạo danh sách đơn giảnThêm điều kiệnSử dụng phép tổng hợp dữ liệuÔn tập: Ngôi nhà của những danh sáchÔn tập: Những phần tử tự do13Hệ thống quản lý hàng tồn kho
Tổng quan dự ánThêm mặt hàng2Từ điển phần 1
Từ điển là gì?Tạo từ điểnTruy cập giá trịChỉnh sửa từ điểnÔn tập: Trình quản lý công thức nấu ăn5Ra quyết định nâng cao
Toán tử ba ngôiKiểm tra thành viênKiểm tra danh tínhLỗi thụt lềÔn tập: Bộ lọc kỳ nghỉ8Trình quản lý hồ sơ học sinh
Tổng quan dự ánThêm học sinh3Từ điển, phần 2
Phương thức của từ điểnTừ điển lồng nhauKiểm tra khóaLặp qua từ điểnÔn tập: Bộ đếm tần suất6Tập hợp phần 1
Tập hợp là gì?Các phép toán cơ bảnCác phương thức của tập hợpÔn tập: Xóa phần tử trùng lặp9Tổng hợp dữ liệu nâng cao
Sử dụng tổngTìm giá trị nhỏ nhất và lớn nhấtSắp xếp dữ liệu hiệu quảÔn tập: Bộ sắp xếp từ điểnTự luyện tập: Trình biên dịch Python online