Trong Python là có bất kỳ ngôn ngữ (hoặc thông dịch viên) tính năng để buộc các thông dịch viên python luôn luôn nâng cao ngoại lệ ngay cả khi mã ngoại lệ vi phạm là bên trong một khối thử/trừ?Python - Có thể buộc tăng ngoại lệ bất kể thử/ngoại trừ khối không?
Tôi vừa thừa hưởng một codebase lớn hơn và cũ được viết bằng python, có mục đích là giao tiếp với một số phần cứng được thiết kế tùy chỉnh mà chúng tôi cũng đã phát triển. Nhiều sai sót thông tin liên lạc và timeout đang được đeo mặt nạ/nhỡ do mô hình (giản thể) mã sau đây:
try:
serialport.write(MSG)
except:
some_logging_function_mostly_not_working_that_might_be_here_or_not()
#or just:
#pass
Để tránh kịch bản điển hình của "chỉ viết lại toàn bộ sự việc từ đầu", tôi hiện đang cố gắng khắc phục tất cả các lỗi ngoại lệ/lỗi thời gian chờ. Tôi đang làm điều này bằng cách vô hiệu hóa bằng tay tất cả các mã xử lý ngoại lệ, mỗi lần một.
Tôi không thể nói chuyện với python, vì tôi chưa bao giờ sử dụng nó (vì vậy tại sao tôi trả lời dưới dạng nhận xét thay vì câu trả lời thực), nhưng hầu hết các trình gỡ rối đều có tùy chọn "phá vỡ tất cả ngoại lệ". Điều này cũng có thể được gọi là "ngoại lệ cơ hội đầu tiên". Nó sẽ cho phép mã của bạn không thay đổi, nhưng xử lý mọi "ném" như một điểm ngắt. Kiểm tra xem trình gỡ rối của bạn có tính năng đó hay không. – rmeador