بخشی از پاورپوینت
--- پاورپوینت شامل تصاویر میباشد ----
اسلاید 1 :
راه های کلی برخورد با خطاها
برخورد و مدیریت برخورد (Handling the Error)
¡توقف اجرا
¡از سر گیری کاری که باید انجام گیرد و یا کار معادل
پخش کردن خطا (Propagating the Error)
¡برنامه ای که این تابع را فراخوانی کرده مطع کرده و به او اجازه می دهیم که هر طور مایل است با این خطا برخورد کند.
اسلاید 2 :
پخش کردن خطا (Propagating the Error)
بازگرداندن کد خطا
مقدار بازگشتی تابع با مقدار بازگشتی خطا با هم تداخل پیدا می کنند
برنامه ای که تابع را فراخوانی می کند می بایست بعد از هر بار فراخوانی کد خطا را بررسی کند.
استفاده از یک متغیر سراسری برای اعلام خطا
به طور کلی استفاده از متغیر سراسری خوانایی و قابلیت اطمینان برنامه را کاهش می دهد و حتی عیب یابی را نیز مشکل می کند.
برنامه ای که تابع را فراخوانی می کند می بایست بعد از هر بار فراخوانی متغیر سراسری خطا را بررسی کند.
Exception راه حل بهتری برای این کار است.
اسلاید 3 :
توضیح دلیل خطا و وضعیت حاصل
چگونه می توان یک خطا را توصیف کرد؟
به کمک یک کد عددی
به کمک یک پیغام متنی
شرایط خطا ممکن است اطلاعاتی بیشتر از یک فیلد داشته باشد
می توان یک شرایط خطا را با یک شی بیان کرد.
اسلاید 4 :
Error Handling: Exceptions
In Java, the error-handling system is based on exceptions
¡Exceptions must be handed in a try/catch block
¡When an exception occurs, process flow is immediately transferred to the catch block
Basic Form
try {
statement1;
statement2;
...
catch(SomeException someVar) {
handleTheException(someVar);
اسلاید 5 :
Exception
در جاوا دو کلاس برای اشیای خطا در نظر گرفته شده است که همه کلاسهای خطاها از آنها ارث می برند.
خطاهای در بیشتر مواقع از نوع Exception هستند.
از آنجایی که شی خطا باید بین توابع مختلف دست به دست گردد باید از یک کلاس که به طور کلی اشیای قابل دست به دست شدن را نمایندگی می کند ارث ببرد. (Throwable)
اسلاید 6 :
Throwable Types
Error
¡A non-recoverable problem that should not be caught (OutOfMemoryError, StackOverflowError, …)
Exception
¡An abnormal condition that should be caught and handled by the programmer
RuntimeException
¡Special case; does not have to be caught
¡Usually the result of a poorly written program (integer division by zero, array out-of-bounds, etc.)
÷A RuntimeException is considered a bug
اسلاید 7 :
Multiple Catch Clauses
A single try can have more that one catch clause
¡If multiple catch clauses are used, order them from the most specific to the most general
¡If no appropriate catch is found, the exception is handed to any outer try blocks
÷If no catch clause is found within the method, then the exception is thrown by the method
اسلاید 8 :
Try-Catch, Example
...
BufferedReader in = null;
String lineIn;
try {
in = new BufferedReader(new FileReader("book.txt"));
while((lineIn = in.readLine()) != null) {
System.out.println(lineIn);
}
in.close();
catch (FileNotFoundException fnfe ) {
System.out.println("File not found.");
catch (EOFException eofe) {
System.out.println("Unexpected End of File.");
catch (IOException ioe) {
System.out.println("IOError reading input: " + ioe);
ioe.printStackTrace(); // Show stack dump
اسلاید 9 :
The finally Clause
After the final catch clause, an optional finally clause may be defined
The finally clause is always executed, even if the try or catch blocks are exited through a break, continue, or return
try {
...
} catch (SomeExceptionsomeVar) {
// Do something
} finally {
// Always executed
}
اسلاید 10 :
Thrown Exceptions
If a potential exception is not handled in the method, then the method must declare that the exception can be thrown
public SomeType someMethod(...) throws SomeException {
// Unhandled potential exception
...
}
¡Note: Multiple exception types (comma separated) can be declared in the throws clause
Explicitly generating an exception
throw new IOException("Blocked by firewall.");
throw new MalformedURLException("Invalid protocol");