ההבדל בין שגיאה לחריג ב- Java

מְחַבֵּר: Laura McKinney
תאריך הבריאה: 2 אַפּרִיל 2021
תאריך עדכון: 5 מאי 2024
Anonim
Difference between Exception and Error
וִידֵאוֹ: Difference between Exception and Error

תוֹכֶן


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

  1. טבלת השוואה
  2. הגדרה
  3. הבדלים עיקריים
  4. סיכום

טבלת השוואה

בסיס להשוואהשגיאהיוצא מן הכלל
בסיסישגיאה נגרמת בגלל היעדר משאבי מערכת.חריג נגרם בגלל הקוד.
התאוששותאין אפשרות להחלים על שגיאה.ניתן להחלים חריג.
מילות מפתחאין שום דרך לטפל בשגיאה לפי קוד התוכנית.חריגים מטופלים באמצעות שלוש מילות מפתח "נסה", "תפוס" ו"זרוק ".
השלכות
עם איתור השגיאה התוכנית תסתיים בצורה לא תקינה.כחריג מזוהה, הוא נזרק ונקלט על ידי מילות המפתח "לזרוק" ו"תפוס "בהתאמה.
סוגים שגיאות מסווגות כסוג שלא סומן.חריגים מסווגים כסוג מסומן או לא מסומן.
חבילה ב- Java, שגיאות מוגדרות בחבילה "java.lang.Error".ב- Java, חריגים מוגדרים ב- "java.lang.Exception".
דוגמאOutOfMemory, StackOverFlow.חריגים מסומנים: NoSuchMethod, ClassNotFound.
חריגים שלא סומנו: NullPointer, IndexOutOfBounds.


הגדרת שגיאה

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

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

הגדרת חריגה

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


נסה {// כתוב את הקוד שלך כאן} תפוס (סוג חריג) {// כתוב את הקוד שלך כאן}

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

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

  1. שגיאה מתרחשת רק כאשר חסרים במשאבי המערכת ואילו חריג נוצר אם יש לקוד בעיה כלשהי.
  2. לעולם לא ניתן לשחזר שגיאה ואילו ניתן לשחזר חריג על ידי הכנת הקוד לטיפול בחריג.
  3. לעולם לא ניתן לטפל בשגיאה, אך ניתן לטפל בחריג באמצעות הקוד אם הקוד שזורק חריג כתוב בתוך בלוק הניסיון.
  4. אם אירעה שגיאה, התוכנית תסתיים בצורה לא תקינה. מצד שני, אם החריג מתרחש התוכנית תזרוק חריג, והיא מטופלת באמצעות בלוק ה- try and catch.
  5. שגיאות הן מהסוג הלא מסומן, כלומר שגיאה אינה בידיעת המהדרים ואילו, חריג מסווג כנבדק ולא מסומן.
  6. שגיאות מוגדרות בחבילת java.lang.Error ואילו חריג מוגדר java.lang.Exception.

סיכום:

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