Khi ngoại lệ xảy ra trong Python, bạn có thể kiểm tra ngăn xếp không? Bạn có thể xác định chiều sâu của nó không? Tôi đã xem xét các mô-đun traceback, nhưng tôi không thể tìm ra cách sử dụng nó.Làm thế nào bạn có thể kiểm tra theo dõi chương trình theo dõi ngăn xếp của một ngoại lệ trong Python?
Mục tiêu của tôi là bắt bất kỳ ngoại lệ nào xảy ra trong quá trình phân tích cú pháp biểu thức eval, mà không bắt ngoại lệ do bất kỳ chức năng nào có thể đã gọi. Đừng bẻ tôi vì sử dụng eval. Đó không phải là quyết định của tôi.
LƯU Ý: Tôi muốn làm điều này theo chương trình, không tương tác.
Tôi không cố in dấu vết. Tôi đang cố kiểm tra nó. Làm thế nào điều này cho tôi biết liệu ngoại lệ xảy ra trong bản thân văn bản eval hay trong một hàm được gọi bởi văn bản được đánh giá? –
Cú pháp Cú pháp sẽ bị ném nếu văn bản 'eval' sai. –
Nhiều loại lỗi khác nhau có thể được ném nếu văn bản eval sai.Tôi đã kết thúc bằng cách sử dụng kiểm tra và xem xét độ sâu của truy nguyên để xem liệu lỗi có phải do đánh giá văn bản gốc hay không hoặc nếu nó nằm trong phần thân của hàm được gọi. –