IndentationError เกิดขึ้นทุกครั้งที่ parser พบซอร์สโค้ดที่ไม่เป็นไปตามกฎการเยื้อง เราสามารถตรวจจับได้เมื่อนำเข้าโมดูล เนื่องจากโมดูลจะถูกรวบรวมในการนำเข้าครั้งแรก คุณไม่สามารถตรวจจับมันได้ในโมดูลเดียวกับที่มีบล็อกลอง/ยกเว้น เพราะด้วยข้อยกเว้นนี้ Python จะไม่สามารถรวบรวมโมดูลให้เสร็จ และไม่มีการเรียกใช้โค้ดในโมดูล
เราเขียนโค้ดใหม่ตามนี้เพื่อจัดการกับข้อยกเว้น
ตัวอย่าง
try: def f(): z=['foo','bar'] for i in z: if i == 'foo': except IndentationError as e: print e
ผลลัพธ์
"C:/Users/TutorialsPoint1/~.py", line 5 if i == 'foo': ^ IndentationError: expected an indented block