chức năng hệ thống. exc_info[] cung cấp cho bạn thông tin chi tiết về ngoại lệ gần đây nhất. Nó trả về một tuple của
import traceback
07import traceback
08 là một thể hiện của đối tượng truy nguyên. Bạn có thể định dạng dấu vết bằng các phương thức được cung cấp. Có thể tìm thấy nhiều hơn trong tài liệu truy nguyên Tuy nhiên, một thành phần thực sự tốt nhất là có một bộ ghi được thiết lập cho mô-đun của bạn. Nó sẽ biết tên của mô-đun -đun và có thể thay đổi mức độ [trong số các thuộc tính khác, chẳng hạn như quá trình xử lý]
import logging
logging.basicConfig[level=logging.DEBUG]
logger = logging.getLogger[__name__]
Trong trường hợp đó, bạn sẽ muốn chức năng
import traceback
9 thay thế. try:
do_something_that_might_error[]
except Exception as error:
logger.exception[error]
Nhật ký nào
import traceback
0Hoặc có thể bạn chỉ muốn chuỗi, trong trường hợp đó, bạn sẽ muốn chức năng
def raise_error[]:
raise RuntimeError['something bad happened!']
def do_something_that_might_error[]:
raise_error[]
0 thay thế. import traceback
2Nhật ký nào
import traceback
3Hoặc có thể bạn chỉ muốn chuỗi, trong trường hợp đó, bạn sẽ muốn chức năng def raise_error[]. tăng RuntimeError ['có điều gì đó tồi tệ đã xảy ra. '] chắc chắn do_something_that_might_error[]. raise_error[] 0 thay thế
Kết luận
import traceback
0Và đối với cả ba tùy chọn, chúng tôi thấy chúng tôi nhận được bắt đầu giống như khi chúng tôi gặp lỗi
Sử dụng cái nào
import traceback
1Mối quan tâm về hiệu suất không quan trọng ở đây vì IO thường thống trị. Tôi thích, vì nó chính xác là những gì được yêu cầu theo cách tương thích về phía trước
Mã nguồn. lib/truy xuất. py Lib/truy nguyên. py
Mô-đun này cung cấp một giao diện tiêu chuẩn để trích xuất, định dạng và trong dấu vết ngăn xếp của các chương trình Python. Nó chính xác bắt chước hành động của Python thông tin chương trình khi nó nằm trong một dấu vết ngăn xếp. Điều này rất hữu ích khi bạn muốn trong các dấu vết ngăn cách sắp xếp bên dưới chương trình điều khiển chương trình, chẳng hạn như trong một trình bao bọc xung quanh mạng xung quanh trình thông dịch
Mô-đun sử dụng các đối tượng Traceback - đây là loại đối tượng được lưu trữ trong biến
def raise_error[]:
raise RuntimeError['something bad happened!']
def do_something_that_might_error[]:
raise_error[]
1 và được trả về dưới dạng mục thứ ba từ______42Mô-đun xác định các chức năng sau
________ 23 ________ 24 [tb, giới hạn = none, file = none] ¶ [tb, limit=None, file=None]¶In up to giới hạn các mục nhập dấu vết từ đối tượng TB Traceback [bắt đầu từ các khung người gọi] nếu giới hạn là dương. If not, in the items
def raise_error[]:
raise RuntimeError['something bad happened!']
def do_something_that_might_error[]:
raise_error[]
5 cuối cùng. If thegiới hạn bị bỏ qua hoặcdef raise_error[]:
raise RuntimeError['something bad happened!']
def do_something_that_might_error[]:
raise_error[]
6, tất cả các mục có trong. Nếu tệp bị bỏ qua hoặcdef raise_error[]:
raise RuntimeError['something bad happened!']
def do_something_that_might_error[]:
raise_error[]
6, đầu ra sẽ chuyển đếndef raise_error[]:
raise RuntimeError['something bad happened!']
def do_something_that_might_error[]:
raise_error[]
8; Đã thay đổi trong phiên bản 3. 5. Đã thêm hỗ trợ giới hạn âm thanh. Đã thêm hỗ trợ giới hạn âm.
________ 23 ________ 30 [exc, /, [value, tb,] giới hạn = none, file = none, string = true] [exc, /, [value, tb, ]limit=None, file=None, chain=True]¶Trong thông tin ngoại lệ và ngăn xếp các mục nhập từ đối tượng TB Traceback sang tệp. Điều này khác với
import traceback
51 theo các cách sauIf TB not be
6, it will in titledef raise_error[]: raise RuntimeError['something bad happened!'] def do_something_that_might_error[]: raise_error[]
53import traceback
Nó thuộc loại ngoại lệ và giá trị sau dấu vết ngăn xếp
If type [value] is
54 và giá trị có định dạng thích hợp, nó sẽ xuất hiện trong dòng trong đó cú sốc pháp lý xảy ra với một người chăm sóc để biết vị trí gần đúng của lỗiimport traceback
Vì Python 3. 10, thay vì chuyển giá trị và bệnh lao, một đối tượng ngoại lệ có thể được truyền làm đối số đầu tiên. Nếu giá trị và bệnh lao được cung cấp, các đối số đầu tiên bị loại bỏ để cung cấp khả năng tương thích ngược
Đối số giới hạn tùy chọn tùy chọn có ý nghĩa tương tự như đối số
import traceback
51. Nếu chuỗi là đúng [mặc định], thì các ngoại lệ được chuỗi [thuộc tính_______156 hoặcimport traceback
57 của ngoại lệ] cũng sẽ được đưa vào, giống như bản thân giao dịch thực thi khi ngoại lệ chưa được xử lýThay đổi trong phiên bản 3. 5. Argument ETYPE bị bỏ qua và suy giảm giá trị từ các loại giá trị. Đối số etype bị bỏ qua và được suy ra từ loại giá trị.
Đã thay đổi trong phiên bản 3. 10. Tham số ETYPE đã được đổi tên thành Exc và hiện chỉ có vị trí. Tham số etype đã được đổi tên thành ex và hiện chỉ có vị trí.
________ 23 ________ 39 [giới hạn = không, tệp = không, chuỗi = đúng] ¶ [giới hạn=None, file=None, chain=True]¶This is a speed signature
____220. ________ 23 ________ 42 [giới hạn = none, file = none, string = true] ¶ [giới hạn=