การยกและยกข้อยกเว้นซ้ำ
ใช้ raise เพื่อส่งสัญญาณข้อผิดพลาด และยกข้อยกเว้นซ้ำเพื่อส่งต่อ
การยกและยกข้อยกเว้นซ้ำ เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน
บทนำ
การส่งข้อยกเว้นในตัวด้วย raise
def divide(a, b):
if b == 0:
raise ValueError('Denominator cannot be zero')
return a / b
try:
divide(5, 0)
except ValueError as e:
print(e)การส่งข้อยกเว้นเดิมซ้ำ
def process(data):
try:
return int(data)
except ValueError:
print('logging error')
raise # re-raises original
try:
process('abc')
except ValueError:
print('caller caught it')การเชื่อมโยงข้อยกเว้นด้วย from
try:
int('abc')
except ValueError as original:
raise RuntimeError('processing failed') from originalการระงับการเชื่อมโยง
try:
int('abc')
except ValueError:
raise RuntimeError('clean error') from Noneคำสั่ง assert
def sqrt(x):
assert x >= 0, f'Input must be non-negative, got {x}'
return x ** 0.5
try:
sqrt(-1)
except AssertionError as e:
print(e)การส่งข้อยกเว้นตามเงื่อนไข
def process(items):
if not items:
raise ValueError('items must not be empty')
return items[0]
print(process([1, 2, 3]))การส่งซ้ำกับการส่งข้อยกเว้นใหม่
def outer():
try:
inner()
except ValueError as e:
raise RuntimeError('outer failed') from e
def inner():
raise ValueError('inner failed')
try:
outer()
except RuntimeError as e:
print(e, e.__cause__)ข้อยกเว้นใน finally
try:
try:
raise ValueError('original')
finally:
print('finally ran')
except ValueError as e:
print('caught:', e)warnings.warn กับ raise
import warnings
def old_func():
warnings.warn('Deprecated', DeprecationWarning)
return 42
print(old_func())รูปแบบ raise from None
class DBError(Exception): pass
def query(q):
try:
raise ConnectionError('refused')
except ConnectionError:
raise DBError('query failed') from None
try:
query('SELECT 1')
except DBError as e:
print(e)ตรวจสอบความเข้าใจ
สรุป
ไปต่อ
คำถามที่พบบ่อย
บทเรียน “การยกและยกข้อยกเว้นซ้ำ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การยกและยกข้อยกเว้นซ้ำ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การยกและยกข้อยกเว้นซ้ำ”
ใช้ raise เพื่อส่งสัญญาณข้อผิดพลาด และยกข้อยกเว้นซ้ำเพื่อส่งต่อ คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การยกและยกข้อยกเว้นซ้ำ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม
ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ทำความเข้าใจข้อยกเว้น
- try / except / else / finally
- การยกและยกข้อยกเว้นซ้ำ
- คลาสข้อยกเว้นแบบกำหนดเอง