logo

דרכים שונות להדפסת הודעת חריג ב-Java

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

  • שימוש בשיטת printStackTrace
  • שימוש בשיטת getMessage()
  • שימוש בשיטת toString()
דרכים שונות להדפסת הודעת חריג ב-Java

בואו נדון בזה אחר זה בפירוט.

שימוש בשיטת printStackTrace()

ה printStackTrace() שיטה מוגדר ב- ניתן לזרוק מחלקה ששייכת לחבילת java.lang. השיטה מדפיסה את שם, תיאור (כמו / באפס ), וה עקבות מחסנית (מספר שורה ושם מחלקה כאשר החריג הועלה) של חריג. מעקב המחסנית עוקב אחר היכן מתרחש החריג הבא. הוא נמצא בשימוש נרחב להדפסת הודעת החריגה.

קיימות שלוש גרסאות של שיטת printStackTrace():

מסגרת אוספי java
תחביר תיאור
printStackTrace() השיטה מדפיסה את האפשרי לזרוק הזה ואת המעקב שלו לאחור לזרם השגיאות הסטנדרטי.
public void printStackTrace(PrintStream s) השיטה מדפיסה ניתנת לזריקה ועקיבה לאחור לזרם ההדפסה שצוין.
public void printStackTrace(PrintWriter s) השיטה מדפיסה ניתנת לזריקה ועקיבה לאחור שלה לכותב ההדפסה שצוין.

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

PrintExceptionMessage1.java

 public class PrintExceptionMessage1 { //user defined method public static void divide() { try { //raised divide by zero exception int a = 100/0; } catch (Exception e) { //prints exception message System.out.println(e); } } //main() method public static void main(String args[]) { //calling user defined method divide(); } } 

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

דרכים שונות להדפסת הודעת חריג ב-Java

בהודעה לעיל, איננו יכולים לציין איזו שורה זורק חריג. לכן, קשה למצוא היכן מתרחשים חריגים. כדי להתגבר על בעיה זו אנו משתמשים בשיטת printStackTrace() . בוא נשתמש בשיטת printStackTrace() בתוכנית Java.

PrintExceptionMessage2.java

פקודת linux עבור zip
 public class ExceptionExample2 { //user defined method public static void divide() { try { //raised divide by zero exception int a = 100/0; } catch (Exception e) { //prints exception message and detail of the exception e.printStackTrace(); } } //main() method public static void main(String args[]) { //calling user defined method divide(); } } 

בואו נריץ את התוכנית לעיל.

דרכים שונות להדפסת הודעת חריג ב-Java

הודעת החריג לעיל מראה בבירור איזו שיטה העלתה חריג, איזה סוג חריג הוא ואיזו שורה זורק חריג.

השורה הראשונה של ההודעה מראה שהתוכנית זורקת א java.lang.ArithmeticException (לחלק באפס). השורה השנייה מראה שחריגים מתרחשים בקו 9 והשיטה divide() זורקת חריגה. השורה השלישית מציגה את החריג הזה בשורה עשרים ואחת . השיטה main() זורקת גם חריגה מכיוון שמתודה divide() נקראת בתוך השיטה main(). לפיכך, שימוש ב- printStackTrace() שיטה, נוכל להצביע בקלות על מיקום מדוייק של החריג.

שימוש בשיטת getMessage()

ה getMessage() השיטה מוגדרת גם ב- ניתן לזרוק מחלקה ששייכת לחבילת java.lang. השיטה מדפיסה רק את ההודעה של חריג. זה לא מדפיס את שם החריג ולא את התיאור. הוא נמצא בשימוש נרחב להדפסת הודעת החריגה.

תחביר:

 public String getMessage(); 

הוא מחזיר את מחרוזת הודעת הפירוט של המופע הניתן ל-Throwable. יכול להיות שהוא ריק.

בואו נשתמש בשיטת getMessage() בתוכנת Java.

PrintExceptionMessage3.java

 public class PrintExceptionMessage3 { public static void main(String args[]) { try { int a = 100/0; } catch (Exception e) { //prints only the message of the exception System.out.println(e.getMessage()); //use the following statement if you want to print name of the exception and which exception thrown //System.out.println(e); } } } 

בואו נריץ את התוכנית לעיל.

דרכים שונות להדפסת הודעת חריג ב-Java

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

שימוש בשיטת toString()

ה toString() שיטת ה ניתן לזרוק הכיתה עוקפת את toString() שיטה של ​​המחלקה Object. הוא מדפיס את התיאור הקצר של חריג. זה לא מציג את המידע האחר (כמו שם חריג ומעקב מחסנית). הוא אינו בשימוש נרחב להדפסת הודעת החריגה.

בוא נשתמש בשיטת toString() בתוכנית Java.

PrintExceptionMessage4.java

 public class PrintExceptionMessage4 { public static void main(String args[]) { try { int a = 100/0; } catch (Exception e) { //we can use either of the statement to print the exception message //both prints the same message System.out.println(e.toString()); //System.out.println(e); } } } 

בואו נריץ את התוכנית לעיל.

דרכים שונות להדפסת הודעת חריג ב-Java

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

המרת מחרוזת ל-json java

ראינו את הדרכים השונות להדפיס את הודעת החריגה ב-Java. אנו מציעים לך להשתמש ב- printStackTrace() שיטה מכיוון שהיא מצביעה על המיקום שבו מתרחש חריג.