logo

Java זורק מילת מפתח

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

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

css עבור מודגש

תחביר של זריקות Java

 return_type method_name() throws exception_class_name{ //method code } 

על איזה חריג יש להכריז?

שנים: מסומן חריג בלבד, כי:

    חריג לא מסומן:בשליטתנו כדי שנוכל לתקן את הקוד שלנו.שְׁגִיאָה:מעבר לשליטתנו. לדוגמה, איננו יכולים לעשות דבר אם מתרחשת VirtualMachineError או StackOverflowError.

היתרון של Java זורק מילת מפתח

כעת ניתן להפיץ חריג מסומן (להעביר בערימת שיחה).

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

Java זורק דוגמה

בוא נראה את הדוגמה של פסקת זריקה של Java שמתארת ​​שניתן להפיץ חריגים מסומנים על ידי מילת מפתח זריקה.

Testthrows1.java

 import java.io.IOException; class Testthrows1{ void m()throws IOException{ throw new IOException('device error');//checked exception } void n()throws IOException{ m(); } void p(){ try{ n(); }catch(Exception e){System.out.println('exception handled');} } public static void main(String args[]){ Testthrows1 obj=new Testthrows1(); obj.p(); System.out.println('normal flow...'); } } 
בדוק את זה עכשיו

תְפוּקָה:

 exception handled normal flow... 

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

ישנם שני מקרים:

    תיק 1:תפסנו את החריגה, כלומר טיפלנו בחריג באמצעות בלוק try/catch.מקרה 2:הכרזנו על החריג, כלומר מילת מפתח זריקה שצוינה עם השיטה.

מקרה 1: טיפול בחריג באמצעות בלוק טרי-catch

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

המרת int ל-Java מחרוזת

Testthrows2.java

 import java.io.*; class M{ void method()throws IOException{ throw new IOException('device error'); } } public class Testthrows2{ public static void main(String args[]){ try{ M m=new M(); m.method(); }catch(Exception e){System.out.println('exception handled');} System.out.println('normal flow...'); } } 
בדוק את זה עכשיו

תְפוּקָה:

 exception handled normal flow... 

מקרה 2: הכרז חריג

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

בואו נראה דוגמאות לשני התרחישים.

המרת int למחרוזת ב-java

א) אם לא מתרחש חריג

Testthrows3.java

 import java.io.*; class M{ void method()throws IOException{ System.out.println('device operation performed'); } } class Testthrows3{ public static void main(String args[])throws IOException{//declare exception M m=new M(); m.method(); System.out.println('normal flow...'); } } 
בדוק את זה עכשיו

תְפוּקָה:

 device operation performed normal flow... 

ב) אם מתרחש חריג

Testthrows4.java

 import java.io.*; class M{ void method()throws IOException{ throw new IOException('device error'); } } class Testthrows4{ public static void main(String args[])throws IOException{//declare exception M m=new M(); m.method(); System.out.println('normal flow...'); } } 
בדוק את זה עכשיו

תְפוּקָה:

ג'אווה זרוק מילת מפתח

ההבדל בין זריקה לזריקה

לחץ עליי לפרטים

שאלה) האם נוכל לזרוק מחדש חריג?

כן, על ידי זריקת אותו חריג בבלוק ה-catch.