Menu
Coddy logo textTech

התאמה אישית של Tracebacks

שיעור 16 מתוך 16 בקורס טיפול בחריגות ב-Python של Coddy.

כשמריצים את התוכנית שלהלן, יופיעו בחלון הפלט פרטי מעקב המחסנית, החריגה וההודעה הסטנדרטית של החריגה.

print(100 + "hello")

התוכנית שלעיל תפיק את הפלט הבא:

Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    print(100+'hello')
TypeError: unsupported operand type(s) for +: 'int' and 'str'

שלוש השורות הראשונות הן פרטי מעקב המחסנית, ובהם מספר השורה, שם הקובץ, הפקודה וכו'.

השורה האחרונה היא חריגה: ההודעה הסטנדרטית של החריגה.

כאשר מתרחשת חריגה, מתבצעת קריאה לפונקציה sys.excepthook() עם הארגומנטים שלהלן.

  • exc_type :- סוג החריגה שהתרחשה.
  • exc_value :- ההודעה הסטנדרטית של החריגה
  • exc_traceback:- פרטי מעקב המחסנית

לאחר מכן, sys.excepthook() מדפיסה את כל הארגומנטים האלה בחלון הפלט כשגיאה סטנדרטית.

challenge icon

אתגר

קל

עקוף את הפונקציה sys.excepthook כדי להתאים אישית ולהציג הודעות משלך בחלון הפלט אם מתרחשת חריגה. עבור פקודת Python שלעיל, היא אמורה להציג רק את "Something Went Wrong!" ולאחר מכן את הודעת החריגה הסטנדרטית.

נסו בעצמכם

import sys

def my_exception(exc_type, exc_value, exc_traceback):
    #הקוד שלך יופיע כאן

#דריסה באמצעות השמה

def add(val1, val2):
    print(val1+val2)

כל השיעורים ביחידה טיפול בחריגות ב-Python

תרגלו בעצמכם: קומפיילר Python אונליין