หน้าแรก
หน้าแรก
ลิงก์ต่อไปนี้เป็นเอกสารอ้างอิงที่ดีเกี่ยวกับข้อยกเว้นของไพธอน https://docs.python.org/2/library/exceptions.html
ข้อยกเว้น IOError เป็นข้อผิดพลาดที่เกิดขึ้นเมื่อการดำเนินการอินพุต/เอาต์พุตล้มเหลว เช่น คำสั่งการพิมพ์ หรือฟังก์ชัน open() เมื่อพยายามเปิดไฟล์ที่ไม่มีอยู่ นอกจากนี้ยังยกขึ้นสำหรับข้อผิดพลาดเกี่ยวกับระบบปฏิบัติการ หากรหัสที่ระบุถูกเขียนในบล็อกการลอง จะทำให้เกิดข้อยกเว้นอินพุต/เอาต์พุต ซึ่งได้รับกา
ArithmeticError Exception เป็นคลาสพื้นฐานสำหรับข้อผิดพลาดทั้งหมดที่เกิดขึ้นสำหรับการคำนวณตัวเลข เป็นคลาสพื้นฐานสำหรับข้อยกเว้นในตัว เช่น OverflowError, ZeroDivisionError, FloatingPointError เราสามารถจับข้อยกเว้นในรหัสที่กำหนดดังนี้ ตัวอย่าง import sys try: 7/0 except ArithmeticError as e: print e p
เมื่อการดำเนินการทางคณิตศาสตร์เกินขีดจำกัดของประเภทตัวแปร จะเกิด OverflowError จำนวนเต็มแบบยาวจะจัดสรรพื้นที่มากขึ้นเมื่อค่าเติบโตขึ้น ดังนั้นพวกมันจึงเพิ่ม MemoryError อย่างไรก็ตาม การจัดการข้อยกเว้นจุดทศนิยมไม่ได้มาตรฐาน จำนวนเต็มปกติจะถูกแปลงเป็นค่ายาวตามต้องการ ตัวอย่าง รหัสที่ได้รับจะถูกเขียนให
IndexError จะเพิ่มขึ้นเมื่อการอ้างอิงลำดับอยู่นอกช่วง โค้ดที่ให้มาจะถูกเขียนใหม่ดังนี้เพื่อตรวจจับข้อยกเว้นและค้นหาประเภท ตัวอย่าง import sys try: my_list = [3,7, 9, 4, 6] print my_list[6] except IndexError as e: print e print sys.exc_type ผลลัพธ์ C:/Users/TutorialsPoint1~.py list index out of range
NameErrors จะเพิ่มขึ้นเมื่อรหัสของคุณอ้างถึงชื่อที่ไม่มีอยู่ในขอบเขตปัจจุบัน ตัวอย่างเช่น ชื่อตัวแปรที่ไม่มีเงื่อนไข โค้ดที่ให้มาจะถูกเขียนใหม่ดังนี้เพื่อตรวจจับข้อยกเว้นและค้นหาประเภทของโค้ด ตัวอย่าง import sys try: def foo(): print magnolia foo() except NameError as e: print e print sys.exc_type
เกิด EOFError เมื่อฟังก์ชันในตัว เช่น input() หรือ raw_input() ไม่อ่านข้อมูลใด ๆ ก่อนที่จะพบจุดสิ้นสุดของอินพุตสตรีม วิธีการของไฟล์เช่น read() จะคืนค่าสตริงว่างที่ส่วนท้ายของไฟล์ โค้ดที่กำหนดจะถูกเขียนใหม่ดังนี้เพื่อจับ EOFError และค้นหาประเภท ตัวอย่าง #eofError.py try: while True: data = raw_input(
SyntaxError เกิดขึ้นทุกครั้งที่ parser พบซอร์สโค้ดที่ไม่เข้าใจ อาจเป็นได้ในขณะนำเข้าโมดูล เรียกใช้ exec หรือเรียก eval() แอตทริบิวต์ของข้อยกเว้นสามารถใช้เพื่อค้นหาว่าส่วนใดของข้อความที่ป้อนทำให้เกิดข้อยกเว้น เราเขียนโค้ดที่กำหนดใหม่เพื่อจัดการกับข้อยกเว้นและค้นหาประเภท ตัวอย่าง try: print eval('
IndentationError เกิดขึ้นทุกครั้งที่ parser พบซอร์สโค้ดที่ไม่เป็นไปตามกฎการเยื้อง เราสามารถตรวจจับได้เมื่อนำเข้าโมดูล เนื่องจากโมดูลจะถูกรวบรวมในการนำเข้าครั้งแรก คุณไม่สามารถตรวจจับมันได้ในโมดูลเดียวกับที่มีบล็อกลอง/ยกเว้น เพราะด้วยข้อยกเว้นนี้ Python จะไม่สามารถรวบรวมโมดูลให้เสร็จ และไม่มีการเรียก
TypeErrors เกิดจากการรวมวัตถุผิดประเภท หรือการเรียกใช้ฟังก์ชันกับวัตถุผิดประเภท ตัวอย่าง import sys try : ny = 'Statue of Liberty' my_list = [3, 4, 5, 8, 9] print my_list + ny except TypeError as e: print e print sys.exc_type ผลลัพธ์ can only concatenate list (not ""str"
EnvironmentError เป็นคลาสพื้นฐานสำหรับข้อผิดพลาดที่มาจากภายนอก Python (ระบบปฏิบัติการ ระบบไฟล์ ฯลฯ) EnvironmentError Exception เป็นคลาสย่อยของคลาส StandarError เป็นคลาสพื้นฐานสำหรับข้อยกเว้น IOError และ OSError มันไม่ได้ถูกยกขึ้นจริง ๆ ซึ่งแตกต่างจากข้อผิดพลาดของคลาสย่อยเช่น IOError และ OSError ตัวอ
LookupError Exception เป็นคลาสพื้นฐานสำหรับข้อผิดพลาดที่เกิดขึ้นเมื่อไม่พบบางสิ่ง คลาสพื้นฐานสำหรับข้อยกเว้นที่เกิดขึ้นเมื่อคีย์หรือดัชนีที่ใช้ในการแมปหรือลำดับไม่ถูกต้อง:IndexError, KeyError IndexError จะเพิ่มขึ้นเมื่อการอ้างอิงลำดับอยู่นอกช่วง โค้ดที่ให้มาจะถูกเขียนใหม่ดังนี้เพื่อตรวจจับข้อยกเว้น
ValueError ถูกใช้เมื่อฟังก์ชันได้รับค่าที่มีประเภทที่ถูกต้องแต่มีค่าที่ไม่ถูกต้อง โค้ดที่กำหนดสามารถเขียนใหม่ได้ดังต่อไปนี้เพื่อจัดการกับข้อยกเว้นและค้นหาประเภทของโค้ด ตัวอย่าง import sys try: n = int('magnolia') except Exception as e: print e print sys.exc_type ผลลัพธ์ invalid literal for i
เมื่อศูนย์ปรากฏขึ้นในตัวส่วนของการดำเนินการหาร ZeroDivisionError จะปรากฏขึ้น เราเขียนโค้ดที่กำหนดใหม่ดังนี้เพื่อจัดการกับข้อยกเว้นและค้นหาประเภทของโค้ด ตัวอย่าง import sys try: x = 11/0 print x except Exception as e: print sys.exc_type print e ผลลัพธ์ <type 'exceptions.ZeroDivisionError'&
FloatingPointError เกิดขึ้นจากการดำเนินการของทศนิยมซึ่งส่งผลให้เกิดข้อผิดพลาด เมื่อเปิดการควบคุมข้อยกเว้นทศนิยม (fpectl) การเปิดใช้งาน fpectl ต้องใช้ล่ามที่คอมไพล์ด้วยแฟล็ก --with-fpectl โค้ดที่กำหนดจะถูกเขียนใหม่ดังนี้เพื่อจัดการกับข้อยกเว้นและค้นหาประเภทของโค้ด ตัวอย่าง import sys import math impo
มีคลาส Exception ซึ่งเป็นคลาสพื้นฐานสำหรับ StopIteration, StandardError และ Warning ข้อผิดพลาดมาตรฐานทั้งหมดมาจาก StandardError ข้อผิดพลาดมาตรฐานบางอย่าง เช่น ArithmeticErrror, AttributeError, AssertionError มาจาก StandardError คลาสพื้นฐาน เมื่อการอ้างอิงแอตทริบิวต์หรือการกำหนดล้มเหลว AttributeErro
เมื่อตัววนซ้ำเสร็จสิ้น วิธีถัดไปจะเพิ่ม StopIteration ข้อยกเว้นนี้ไม่ถือเป็นข้อผิดพลาด เราเขียนโค้ดที่กำหนดใหม่ดังนี้ เพื่อรับข้อยกเว้นและทราบประเภทของโค้ด ตัวอย่าง import sys try: z = [5, 9, 7] i = iter(z) print i print i.next() print i.next() print i.next() print i.next() except Exception as e: pr
ในเอกสารประกอบของ python SystemExit ไม่ใช่คลาสย่อยของคลาส Exception คลาส BaseException เป็นคลาสพื้นฐานของ SystemExit ดังนั้นในโค้ดที่กำหนด เราจะแทนที่ Exception ด้วย BaseException เพื่อให้โค้ดทำงานได้ ตัวอย่าง try: raise SystemExit except BaseException: print "It works!" ผลลัพธ์ It works!
ImportError ปรากฏขึ้นเมื่อไม่สามารถนำเข้าโมดูลหรือสมาชิกของโมดูลได้ มีสองเงื่อนไขที่อาจแสดง ImportError หากไม่มีโมดูล ตัวอย่าง import sys try: from exception import myexception except Exception as e: print e print sys.exc_type ผลลัพธ์ No module named excep
คลาสพื้นฐานที่ผู้ใช้กำหนดสามารถเพิ่ม NotImplementedError เพื่อระบุว่าเมธอดหรือพฤติกรรมจำเป็นต้องกำหนดโดยคลาสย่อย โดยจำลองอินเทอร์เฟซ ข้อยกเว้นนี้มาจาก RuntimeError ในคลาสพื้นฐานที่ผู้ใช้กำหนด เมธอด abstract ควรยกข้อยกเว้นนี้เมื่อต้องการคลาสที่ได้รับมาแทนที่เมธอด ตัวอย่าง import sys try: