Trước hết - tôi không gặp vấn đề với mã không được thụt lề và tôi có ý tưởng về cách ngoại lệ này hoạt động như thế nào.Cách nắm bắt IndentationError
Tôi hỏi, nếu có cách nào để bắt IndentationError trong mã với khối thử/ngoại trừ? Ví dụ, giả sử tôi đang viết một bài kiểm tra cho một hàm được viết bởi người khác. Tôi muốn chạy nó trong thử/trừ khối và xử lý tất cả các cảnh báo anh/cô ấy có thể thực hiện. Tôi biết, đó không phải là một ví dụ điển hình nhất, nhưng cái đầu tiên đến với tâm trí tôi. Xin vui lòng, không tập trung vào một ví dụ, mà là về vấn đề.
Hãy nhìn vào các mã:
try:
f()
except IndentationError:
print "Error"
print "Finished"
Chức năng:
def f():
print "External function"
Và kết quả là:
External function
Finished
Và đó là một cái gì đó, tôi đã sẵn sàng để hiểu, bởi vì indentation trong hàm bên ngoài là nhất quán.
Nhưng khi chức năng nhìn như thế:
def f():
print "External function"
print "with bad indentation"
Trường hợp ngoại lệ là unhandled:
print "with bad indentation"
^
IndentationError: unexpected indent
Có cách nào để đạt được nó? Tôi đoán đó là vấn đề biên soạn, và đến nay tôi không thấy bất kỳ khả năng nào để bắt kịp. Có phải except IndentationError
có ý nghĩa gì không?
Lưu ý rằng 'IndentationError' là một lớp con của' SyntaxError'. –