SlideShare una empresa de Scribd logo
1 de 49
1
EXCEPTION HANDELING
MECHANISM-2023EV080
BY
JAYAPRIYA R
CSE
Exception-Handling Overview
2
Show runtime error
Fix it using an if statement
With a method
Run
Quotient
Run
QuotientWithIf
Run
QuotientWithMethod
Exception Advantages
3
Now you see the advantages of using exception handling.
It enables a method to throw an exception to its caller.
Without this capability, a method must handle the
exception or terminate the program.
Run
QuotientWithException
Handling Input Mismatch Exception
4
By handling InputMismatchException, your program will
continuously read an input until it is correct.
Run
InputMismatchExceptionDemo
Exception Types
5
LinkageError
Error
Throwable
ClassNotFoundException
VirtualMachineError
IOException
Exception
RuntimeException
Object
ArithmeticException
NullPointerException
IndexOutOfBoundsException
Many more classes
Many more classes
Many more classes
IllegalArgumentException
System Errors
6
LinkageError
Error
Throwable
ClassNotFoundException
VirtualMachineError
IOException
Exception
RuntimeException
Object
ArithmeticException
NullPointerException
IndexOutOfBoundsException
Many more classes
Many more classes
Many more classes
IllegalArgumentException
System errors are thrown by JVM
and represented in the Error class.
The Error class describes internal
system errors. Such errors rarely
occur. If one does, there is little
you can do beyond notifying the
user and trying to terminate the
program gracefully.
Exceptions
7
LinkageError
Error
Throwable
ClassNotFoundException
VirtualMachineError
IOException
Exception
RuntimeException
Object
ArithmeticException
NullPointerException
IndexOutOfBoundsException
Many more classes
Many more classes
Many more classes
IllegalArgumentException
Exception describes errors
caused by your program
and external
circumstances. These
errors can be caught and
handled by your program.
Runtime Exceptions
8
LinkageError
Error
Throwable
ClassNotFoundException
VirtualMachineError
IOException
Exception
RuntimeException
Object
ArithmeticException
NullPointerException
IndexOutOfBoundsException
Many more classes
Many more classes
Many more classes
IllegalArgumentException
RuntimeException is caused by
programming errors, such as bad
casting, accessing an out-of-bounds
array, and numeric errors.
Checked Exceptions vs. Unchecked
Exceptions
9
RuntimeException, Error and their subclasses are
known as unchecked exceptions. All other
exceptions are known as checked exceptions,
meaning that the compiler forces the programmer
to check and deal with the exceptions.
Unchecked Exceptions
10
In most cases, unchecked exceptions reflect programming
logic errors that are not recoverable. For example, a
NullPointerException is thrown if you access an object
through a reference variable before an object is assigned to
it; an IndexOutOfBoundsException is thrown if you access
an element in an array outside the bounds of the array.
These are the logic errors that should be corrected in the
program. Unchecked exceptions can occur anywhere in the
program. To avoid cumbersome overuse of try-catch
blocks, Java does not mandate you to write code to catch
unchecked exceptions.
Unchecked Exceptions
11
LinkageError
Error
Throwable
ClassNotFoundException
VirtualMachineError
IOException
Exception
RuntimeException
Object
ArithmeticException
NullPointerException
IndexOutOfBoundsException
Many more classes
Many more classes
Many more classes
IllegalArgumentException
Unchecked
exception.
Declaring, Throwing, and Catching
Exceptions
12
method1() {
try {
invoke method2;
}
catch (Exception ex) {
Process exception;
}
}
method2() throws Exception {
if (an error occurs) {
throw new Exception();
}
}
catch exception throw exception
declare exception
Declaring Exceptions
Every method must state the types of checked exceptions it might throw.
This is known as declaring exceptions.
public void myMethod()
throws IOException
public void myMethod()
throws IOException, OtherException
13
Throwing Exceptions
When the program detects an error, the program can create an instance of an
appropriate exception type and throw it. This is known as throwing an
exception. Here is an example,
throw new TheException();
TheException ex = new TheException();
throw ex;
14
Throwing Exceptions Example
/** Set a new radius */
public void setRadius(double newRadius)
throws IllegalArgumentException {
if (newRadius >= 0)
radius = newRadius;
else
throw new IllegalArgumentException(
"Radius cannot be negative");
}
15
Catching Exceptions
try {
statements; // Statements that may throw exceptions
}
catch (Exception1 exVar1) {
handler for exception1;
}
catch (Exception2 exVar2) {
handler for exception2;
}
...
catch (ExceptionN exVar3) {
handler for exceptionN;
}
16
Catching Exceptions
17
try
catch
try
catch
try
catch
An exception
is thrown in
method3
Call Stack
main method main method
method1
main method
method1
main method
method1
method2 method2
method3
Catch or Declare Checked Exceptions
Suppose p2 is defined as follows:
18
void p2() throws IOException {
if (a file does not exist) {
throw new IOException("File does not exist");
}
...
}
Catch or Declare Checked Exceptions
Java forces you to deal with checked exceptions. If a method
declares a checked exception (i.e., an exception other than Error
or RuntimeException), you must invoke it in a try-catch block or
declare to throw the exception in the calling method. For example,
suppose that method p1 invokes method p2 and p2 may throw a
checked exception (e.g., IOException), you have to write the code
as shown in (a) or (b).
19
void p1() {
try {
p2();
}
catch (IOException ex) {
...
}
}
(a) (b)
void p1() throws IOException {
p2();
}
Rethrowing Exceptions
try {
statements;
}
catch(TheException ex) {
perform operations before exits;
throw ex;
}
20
The finally Clause
try {
statements;
}
catch(TheException ex) {
handling ex;
}
finally {
finalStatements;
}
21
Trace a Program Execution
try {
statements;
}
catch(TheException ex) {
handling ex;
}
finally {
finalStatements;
}
Next statement;
22
animation
Suppose no
exceptions in the
statements
Trace a Program Execution
try {
statements;
}
catch(TheException ex) {
handling ex;
}
finally {
finalStatements;
}
Next statement;
23
animation
The final block is
always executed
Trace a Program Execution
try {
statements;
}
catch(TheException ex) {
handling ex;
}
finally {
finalStatements;
}
Next statement;
24
animation
Next statement in the
method is executed
Trace a Program Execution
try {
statement1;
statement2;
statement3;
}
catch(Exception1 ex) {
handling ex;
}
finally {
finalStatements;
}
Next statement;
25
animation
Suppose an exception
of type Exception1 is
thrown in statement2
Trace a Program Execution
try {
statement1;
statement2;
statement3;
}
catch(Exception1 ex) {
handling ex;
}
finally {
finalStatements;
}
Next statement;
26
animation
The exception is
handled.
Trace a Program Execution
try {
statement1;
statement2;
statement3;
}
catch(Exception1 ex) {
handling ex;
}
finally {
finalStatements;
}
Next statement;
27
animation
The final block is
always executed.
Trace a Program Execution
try {
statement1;
statement2;
statement3;
}
catch(Exception1 ex) {
handling ex;
}
finally {
finalStatements;
}
Next statement;
28
animation
The next statement in
the method is now
executed.
Trace a Program Execution
try {
statement1;
statement2;
statement3;
}
catch(Exception1 ex) {
handling ex;
}
catch(Exception2 ex) {
handling ex;
throw ex;
}
finally {
finalStatements;
}
Next statement;
29
animation
statement2 throws an
exception of type
Exception2.
Trace a Program Execution
try {
statement1;
statement2;
statement3;
}
catch(Exception1 ex) {
handling ex;
}
catch(Exception2 ex) {
handling ex;
throw ex;
}
finally {
finalStatements;
}
Next statement;
30
animation
Handling exception
Trace a Program Execution
try {
statement1;
statement2;
statement3;
}
catch(Exception1 ex) {
handling ex;
}
catch(Exception2 ex) {
handling ex;
throw ex;
}
finally {
finalStatements;
}
Next statement;
31
animation
Execute the final block
Trace a Program Execution
try {
statement1;
statement2;
statement3;
}
catch(Exception1 ex) {
handling ex;
}
catch(Exception2 ex) {
handling ex;
throw ex;
}
finally {
finalStatements;
}
Next statement;
32
animation
Rethrow the exception
and control is
transferred to the caller
Cautions When Using Exceptions
 Exception handling separates error-handling code from normal
programming tasks, thus making programs easier to read and to
modify. Be aware, however, that exception handling usually requires
more time and resources because it requires instantiating a new
exception object, rolling back the call stack, and propagating the
errors to the calling methods.
When to Throw Exceptions
An exception occurs in a method. If you want the exception to be
processed by its caller, you should create an exception object and throw
it. If you can handle the exception in the method where it occurs, there
is no need to throw it.
33
When to Use Exceptions
When should you use the try-catch block in the code?
You should use it to deal with unexpected error
conditions. Do not use it to deal with simple, expected
situations. For example, the following code
34
try {
System.out.println(refVar.toString());
}
catch (NullPointerException ex) {
System.out.println("refVar is null");
}
When to Use Exceptions
35
if (refVar != null)
System.out.println(refVar.toString());
else
System.out.println("refVar is null");
Defining Custom Exception Classes
36
 Use the exception classes in the API whenever possible.
 Define custom exception classes if the predefined
classes are not sufficient.
 Define custom exception classes by extending
Exception or a subclass of Exception.
Custom Exception Class Example
37
The setRadius method throws an exception if the radius is negative.
Suppose you wish to pass the radius to the handler, you have to
create a custom exception class.
Run
TestCircleWithRadiusException
CircleWithRadiusException
InvalidRadiusException
Assertions
An assertion is a Java statement that
enables you to assert an assumption
about your program. An assertion
contains a Boolean expression that
should be true during program
execution. Assertions can be used to
assure program correctness and avoid
logic errors.
38
Declaring Assertions
An assertion is declared using the new Java
keyword assert in JDK 1.4 as follows:
assert assertion; or
assert assertion : detailMessage;
where assertion is a Boolean expression and
detailMessage is a primitive-type or an Object
value.
39
Executing Assertions
When an assertion statement is executed, Java evaluates
the assertion. If it is false, an AssertionError will be
thrown. The AssertionError class has a no-arg constructor
and seven overloaded single-argument constructors of
type int, long, float, double, boolean, char, and Object.
For the first assert statement with no detail message, the
no-arg constructor of AssertionError is used. For the
second assert statement with a detail message, an
appropriate AssertionError constructor is used to match
the data type of the message. Since AssertionError is a
subclass of Error, when an assertion becomes false, the
program displays a message on the console and exits.
40
Executing Assertions Example
public class AssertionDemo {
public static void main(String[] args) {
int i; int sum = 0;
for (i = 0; i < 10; i++) {
sum += i;
}
assert i == 10;
assert sum > 10 && sum < 5 * 10 : "sum is " + sum;
}
}
41
Compiling Programs with Assertions
Since assert is a new Java keyword
introduced in JDK 1.4, you have to compile
the program using a JDK 1.4 compiler.
Furthermore, you need to include the
switch –source 1.4 in the compiler command
as follows:
javac –source 1.4 AssertionDemo.java
NOTE: If you use JDK 1.5, there is no need
to use the –source 1.4 option in the
command. 42
Running Programs with Assertions
By default, the assertions are disabled at runtime.
To enable it, use the switch –enableassertions, or
–ea for short, as follows:
java –ea AssertionDemo
Assertions can be selectively enabled or disabled
at class level or package level. The disable switch
is –disableassertions or –da for short. For example,
the following command enables assertions in
package package1 and disables assertions in class
Class1.
java –ea:package1 –da:Class1 AssertionDemo
43
Using Exception Handling or Assertions
Assertion should not be used to replace exception
handling. Exception handling deals with unusual
circumstances during program execution.
Assertions are to assure the correctness of the
program. Exception handling addresses robustness
and assertion addresses correctness. Like
exception handling, assertions are not used for
normal tests, but for internal consistency and
validity checks. Assertions are checked at runtime
and can be turned on or off at startup time.
44
Another good use of assertions is place assertions in
a switch statement without a default case. For
example,
45
switch (month) {
case 1: ... ; break;
case 2: ... ; break;
...
case 12: ... ; break;
default: assert false : "Invalid month: " + month
}
The File Class
The File class is intended to provide an abstraction
that deals with most of the machine-dependent
complexities of files and path names in a machine-
independent fashion. The filename is a string. The File
class is a wrapper class for the file name and its
directory path.
46
Obtaining file properties and manipulating file
47
Reading Data from the Web
Just like you can read data from a file on
your computer, you can read data from a
file on the Web.
48
Reading Data from the Web
URL url = new URL("www.google.com/index.html");
After a URL object is created, you can use the
openStream() method defined in the URL class to
open an input stream and use this stream to create a
Scanner object as follows:
Scanner input = new Scanner(url.openStream());
49
Run
ReadFileFromURL

Más contenido relacionado

Similar a EXCEPTION

12. Exception Handling
12. Exception Handling 12. Exception Handling
12. Exception Handling Intro C# Book
 
Java SE 11 Exception Handling
Java SE 11 Exception HandlingJava SE 11 Exception Handling
Java SE 11 Exception HandlingAshwin Shiv
 
Class notes(week 8) on exception handling
Class notes(week 8) on exception handlingClass notes(week 8) on exception handling
Class notes(week 8) on exception handlingKuntal Bhowmick
 
Exception handling
Exception handlingException handling
Exception handlingIblesoft
 
Exception handling in java
Exception handling in javaException handling in java
Exception handling in javaAmbigaMurugesan
 
Exception handling in java
Exception handling in javaException handling in java
Exception handling in javagopalrajput11
 
Exceptions overview
Exceptions overviewExceptions overview
Exceptions overviewBharath K
 
Exceptions in java
Exceptions in javaExceptions in java
Exceptions in javaManav Prasad
 
Java exception handling
Java exception handlingJava exception handling
Java exception handlingBHUVIJAYAVELU
 
Md07 exceptions&assertion
Md07 exceptions&assertionMd07 exceptions&assertion
Md07 exceptions&assertionRakesh Madugula
 
MODULE5_EXCEPTION HANDLING.docx
MODULE5_EXCEPTION HANDLING.docxMODULE5_EXCEPTION HANDLING.docx
MODULE5_EXCEPTION HANDLING.docxVeerannaKotagi1
 
Best Practices in Exception Handling
Best Practices in Exception HandlingBest Practices in Exception Handling
Best Practices in Exception HandlingLemi Orhan Ergin
 
Exception handling in java.pptx
Exception handling in java.pptxException handling in java.pptx
Exception handling in java.pptxNagaraju Pamarthi
 
Exception handling
Exception handlingException handling
Exception handlingzindadili
 

Similar a EXCEPTION (20)

12. Exception Handling
12. Exception Handling 12. Exception Handling
12. Exception Handling
 
UNIT 2.pptx
UNIT 2.pptxUNIT 2.pptx
UNIT 2.pptx
 
Java SE 11 Exception Handling
Java SE 11 Exception HandlingJava SE 11 Exception Handling
Java SE 11 Exception Handling
 
Class notes(week 8) on exception handling
Class notes(week 8) on exception handlingClass notes(week 8) on exception handling
Class notes(week 8) on exception handling
 
java exception.pptx
java exception.pptxjava exception.pptx
java exception.pptx
 
Exception handling
Exception handlingException handling
Exception handling
 
Exception handling in java
Exception handling in javaException handling in java
Exception handling in java
 
Exception handling in java
Exception handling in javaException handling in java
Exception handling in java
 
Exceptions overview
Exceptions overviewExceptions overview
Exceptions overview
 
Z blue exception
Z blue   exceptionZ blue   exception
Z blue exception
 
Exceptions in java
Exceptions in javaExceptions in java
Exceptions in java
 
Java exception handling
Java exception handlingJava exception handling
Java exception handling
 
How to handle exceptions in Java Technology
How to handle exceptions in Java Technology How to handle exceptions in Java Technology
How to handle exceptions in Java Technology
 
Md07 exceptions&assertion
Md07 exceptions&assertionMd07 exceptions&assertion
Md07 exceptions&assertion
 
MODULE5_EXCEPTION HANDLING.docx
MODULE5_EXCEPTION HANDLING.docxMODULE5_EXCEPTION HANDLING.docx
MODULE5_EXCEPTION HANDLING.docx
 
Best Practices in Exception Handling
Best Practices in Exception HandlingBest Practices in Exception Handling
Best Practices in Exception Handling
 
unit 4 .ppt
unit 4 .pptunit 4 .ppt
unit 4 .ppt
 
Exception handling in java.pptx
Exception handling in java.pptxException handling in java.pptx
Exception handling in java.pptx
 
Exception handling
Exception handlingException handling
Exception handling
 
exception handling
exception handlingexception handling
exception handling
 

Más de JAYAPRIYAR7

1.5 Energy Resources.ppt
1.5 Energy Resources.ppt1.5 Energy Resources.ppt
1.5 Energy Resources.pptJAYAPRIYAR7
 
1.3 Incremental Model.pptx
1.3 Incremental Model.pptx1.3 Incremental Model.pptx
1.3 Incremental Model.pptxJAYAPRIYAR7
 
1.1 The nature of software.ppt
1.1 The nature of software.ppt1.1 The nature of software.ppt
1.1 The nature of software.pptJAYAPRIYAR7
 
1.2 Waterfall model.pptx
1.2 Waterfall model.pptx1.2 Waterfall model.pptx
1.2 Waterfall model.pptxJAYAPRIYAR7
 
1.4 Prototyping model.pptx
1.4 Prototyping model.pptx1.4 Prototyping model.pptx
1.4 Prototyping model.pptxJAYAPRIYAR7
 
1.5 Spiral model.pptx
1.5 Spiral model.pptx1.5 Spiral model.pptx
1.5 Spiral model.pptxJAYAPRIYAR7
 
Physiology_Endocrinology.ppt
Physiology_Endocrinology.pptPhysiology_Endocrinology.ppt
Physiology_Endocrinology.pptJAYAPRIYAR7
 
ICMRI PPT Template.pptx
ICMRI PPT Template.pptxICMRI PPT Template.pptx
ICMRI PPT Template.pptxJAYAPRIYAR7
 
Indian Space Programme JP PPT.pptx
Indian Space Programme JP PPT.pptxIndian Space Programme JP PPT.pptx
Indian Space Programme JP PPT.pptxJAYAPRIYAR7
 
ARCATHON SAMPLE PPT (REFERENCE MODEL).pptx
ARCATHON SAMPLE PPT (REFERENCE MODEL).pptxARCATHON SAMPLE PPT (REFERENCE MODEL).pptx
ARCATHON SAMPLE PPT (REFERENCE MODEL).pptxJAYAPRIYAR7
 
SPEAKING ASSESSMENT PPT .pptx
SPEAKING ASSESSMENT PPT .pptxSPEAKING ASSESSMENT PPT .pptx
SPEAKING ASSESSMENT PPT .pptxJAYAPRIYAR7
 
Engineering Students - Idea Submission Template.pptx
Engineering Students - Idea Submission Template.pptxEngineering Students - Idea Submission Template.pptx
Engineering Students - Idea Submission Template.pptxJAYAPRIYAR7
 
TECH WARRIORS_INNOVATE FOR SOCIETY.pptx
TECH WARRIORS_INNOVATE FOR SOCIETY.pptxTECH WARRIORS_INNOVATE FOR SOCIETY.pptx
TECH WARRIORS_INNOVATE FOR SOCIETY.pptxJAYAPRIYAR7
 
Topic 2_revised.pptx
Topic 2_revised.pptxTopic 2_revised.pptx
Topic 2_revised.pptxJAYAPRIYAR7
 
BOB_Sample_PPt_Template_(1).pptx
BOB_Sample_PPt_Template_(1).pptxBOB_Sample_PPt_Template_(1).pptx
BOB_Sample_PPt_Template_(1).pptxJAYAPRIYAR7
 
neurotansmitters.ppt
neurotansmitters.pptneurotansmitters.ppt
neurotansmitters.pptJAYAPRIYAR7
 

Más de JAYAPRIYAR7 (17)

1.5 Energy Resources.ppt
1.5 Energy Resources.ppt1.5 Energy Resources.ppt
1.5 Energy Resources.ppt
 
1.3 Incremental Model.pptx
1.3 Incremental Model.pptx1.3 Incremental Model.pptx
1.3 Incremental Model.pptx
 
1.1 The nature of software.ppt
1.1 The nature of software.ppt1.1 The nature of software.ppt
1.1 The nature of software.ppt
 
1.2 Waterfall model.pptx
1.2 Waterfall model.pptx1.2 Waterfall model.pptx
1.2 Waterfall model.pptx
 
1.4 Prototyping model.pptx
1.4 Prototyping model.pptx1.4 Prototyping model.pptx
1.4 Prototyping model.pptx
 
1.5 Spiral model.pptx
1.5 Spiral model.pptx1.5 Spiral model.pptx
1.5 Spiral model.pptx
 
Physiology_Endocrinology.ppt
Physiology_Endocrinology.pptPhysiology_Endocrinology.ppt
Physiology_Endocrinology.ppt
 
ICMRI PPT Template.pptx
ICMRI PPT Template.pptxICMRI PPT Template.pptx
ICMRI PPT Template.pptx
 
Indian Space Programme JP PPT.pptx
Indian Space Programme JP PPT.pptxIndian Space Programme JP PPT.pptx
Indian Space Programme JP PPT.pptx
 
ARCATHON SAMPLE PPT (REFERENCE MODEL).pptx
ARCATHON SAMPLE PPT (REFERENCE MODEL).pptxARCATHON SAMPLE PPT (REFERENCE MODEL).pptx
ARCATHON SAMPLE PPT (REFERENCE MODEL).pptx
 
SPEAKING ASSESSMENT PPT .pptx
SPEAKING ASSESSMENT PPT .pptxSPEAKING ASSESSMENT PPT .pptx
SPEAKING ASSESSMENT PPT .pptx
 
Engineering Students - Idea Submission Template.pptx
Engineering Students - Idea Submission Template.pptxEngineering Students - Idea Submission Template.pptx
Engineering Students - Idea Submission Template.pptx
 
TECH WARRIORS_INNOVATE FOR SOCIETY.pptx
TECH WARRIORS_INNOVATE FOR SOCIETY.pptxTECH WARRIORS_INNOVATE FOR SOCIETY.pptx
TECH WARRIORS_INNOVATE FOR SOCIETY.pptx
 
Topic 2_revised.pptx
Topic 2_revised.pptxTopic 2_revised.pptx
Topic 2_revised.pptx
 
BOB_Sample_PPt_Template_(1).pptx
BOB_Sample_PPt_Template_(1).pptxBOB_Sample_PPt_Template_(1).pptx
BOB_Sample_PPt_Template_(1).pptx
 
coursera1.pdf
coursera1.pdfcoursera1.pdf
coursera1.pdf
 
neurotansmitters.ppt
neurotansmitters.pptneurotansmitters.ppt
neurotansmitters.ppt
 

Último

KCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosKCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosVictor Morales
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating SystemRashmi Bhat
 
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptJohnWilliam111370
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substationstephanwindworld
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxStephen Sitton
 
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMSHigh Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMSsandhya757531
 
11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdfHafizMudaserAhmad
 
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTFUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTSneha Padhiar
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewsandhya757531
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptxmohitesoham12
 
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.elesangwon
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating SystemRashmi Bhat
 
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTES
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTESCME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTES
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTESkarthi keyan
 
Robotics Group 10 (Control Schemes) cse.pdf
Robotics Group 10  (Control Schemes) cse.pdfRobotics Group 10  (Control Schemes) cse.pdf
Robotics Group 10 (Control Schemes) cse.pdfsahilsajad201
 
Cost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionCost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionSneha Padhiar
 
Prach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism CommunityPrach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism Communityprachaibot
 
Main Memory Management in Operating System
Main Memory Management in Operating SystemMain Memory Management in Operating System
Main Memory Management in Operating SystemRashmi Bhat
 
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...Erbil Polytechnic University
 
"Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ..."Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ...Erbil Polytechnic University
 

Último (20)

KCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosKCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitos
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating System
 
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substation
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptx
 
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMSHigh Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
 
11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf
 
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTFUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overview
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptx
 
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating System
 
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTES
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTESCME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTES
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTES
 
Robotics Group 10 (Control Schemes) cse.pdf
Robotics Group 10  (Control Schemes) cse.pdfRobotics Group 10  (Control Schemes) cse.pdf
Robotics Group 10 (Control Schemes) cse.pdf
 
Cost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionCost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based question
 
Prach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism CommunityPrach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism Community
 
Main Memory Management in Operating System
Main Memory Management in Operating SystemMain Memory Management in Operating System
Main Memory Management in Operating System
 
Designing pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptxDesigning pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptx
 
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
 
"Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ..."Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ...
 

EXCEPTION

  • 2. Exception-Handling Overview 2 Show runtime error Fix it using an if statement With a method Run Quotient Run QuotientWithIf Run QuotientWithMethod
  • 3. Exception Advantages 3 Now you see the advantages of using exception handling. It enables a method to throw an exception to its caller. Without this capability, a method must handle the exception or terminate the program. Run QuotientWithException
  • 4. Handling Input Mismatch Exception 4 By handling InputMismatchException, your program will continuously read an input until it is correct. Run InputMismatchExceptionDemo
  • 6. System Errors 6 LinkageError Error Throwable ClassNotFoundException VirtualMachineError IOException Exception RuntimeException Object ArithmeticException NullPointerException IndexOutOfBoundsException Many more classes Many more classes Many more classes IllegalArgumentException System errors are thrown by JVM and represented in the Error class. The Error class describes internal system errors. Such errors rarely occur. If one does, there is little you can do beyond notifying the user and trying to terminate the program gracefully.
  • 7. Exceptions 7 LinkageError Error Throwable ClassNotFoundException VirtualMachineError IOException Exception RuntimeException Object ArithmeticException NullPointerException IndexOutOfBoundsException Many more classes Many more classes Many more classes IllegalArgumentException Exception describes errors caused by your program and external circumstances. These errors can be caught and handled by your program.
  • 8. Runtime Exceptions 8 LinkageError Error Throwable ClassNotFoundException VirtualMachineError IOException Exception RuntimeException Object ArithmeticException NullPointerException IndexOutOfBoundsException Many more classes Many more classes Many more classes IllegalArgumentException RuntimeException is caused by programming errors, such as bad casting, accessing an out-of-bounds array, and numeric errors.
  • 9. Checked Exceptions vs. Unchecked Exceptions 9 RuntimeException, Error and their subclasses are known as unchecked exceptions. All other exceptions are known as checked exceptions, meaning that the compiler forces the programmer to check and deal with the exceptions.
  • 10. Unchecked Exceptions 10 In most cases, unchecked exceptions reflect programming logic errors that are not recoverable. For example, a NullPointerException is thrown if you access an object through a reference variable before an object is assigned to it; an IndexOutOfBoundsException is thrown if you access an element in an array outside the bounds of the array. These are the logic errors that should be corrected in the program. Unchecked exceptions can occur anywhere in the program. To avoid cumbersome overuse of try-catch blocks, Java does not mandate you to write code to catch unchecked exceptions.
  • 12. Declaring, Throwing, and Catching Exceptions 12 method1() { try { invoke method2; } catch (Exception ex) { Process exception; } } method2() throws Exception { if (an error occurs) { throw new Exception(); } } catch exception throw exception declare exception
  • 13. Declaring Exceptions Every method must state the types of checked exceptions it might throw. This is known as declaring exceptions. public void myMethod() throws IOException public void myMethod() throws IOException, OtherException 13
  • 14. Throwing Exceptions When the program detects an error, the program can create an instance of an appropriate exception type and throw it. This is known as throwing an exception. Here is an example, throw new TheException(); TheException ex = new TheException(); throw ex; 14
  • 15. Throwing Exceptions Example /** Set a new radius */ public void setRadius(double newRadius) throws IllegalArgumentException { if (newRadius >= 0) radius = newRadius; else throw new IllegalArgumentException( "Radius cannot be negative"); } 15
  • 16. Catching Exceptions try { statements; // Statements that may throw exceptions } catch (Exception1 exVar1) { handler for exception1; } catch (Exception2 exVar2) { handler for exception2; } ... catch (ExceptionN exVar3) { handler for exceptionN; } 16
  • 17. Catching Exceptions 17 try catch try catch try catch An exception is thrown in method3 Call Stack main method main method method1 main method method1 main method method1 method2 method2 method3
  • 18. Catch or Declare Checked Exceptions Suppose p2 is defined as follows: 18 void p2() throws IOException { if (a file does not exist) { throw new IOException("File does not exist"); } ... }
  • 19. Catch or Declare Checked Exceptions Java forces you to deal with checked exceptions. If a method declares a checked exception (i.e., an exception other than Error or RuntimeException), you must invoke it in a try-catch block or declare to throw the exception in the calling method. For example, suppose that method p1 invokes method p2 and p2 may throw a checked exception (e.g., IOException), you have to write the code as shown in (a) or (b). 19 void p1() { try { p2(); } catch (IOException ex) { ... } } (a) (b) void p1() throws IOException { p2(); }
  • 20. Rethrowing Exceptions try { statements; } catch(TheException ex) { perform operations before exits; throw ex; } 20
  • 21. The finally Clause try { statements; } catch(TheException ex) { handling ex; } finally { finalStatements; } 21
  • 22. Trace a Program Execution try { statements; } catch(TheException ex) { handling ex; } finally { finalStatements; } Next statement; 22 animation Suppose no exceptions in the statements
  • 23. Trace a Program Execution try { statements; } catch(TheException ex) { handling ex; } finally { finalStatements; } Next statement; 23 animation The final block is always executed
  • 24. Trace a Program Execution try { statements; } catch(TheException ex) { handling ex; } finally { finalStatements; } Next statement; 24 animation Next statement in the method is executed
  • 25. Trace a Program Execution try { statement1; statement2; statement3; } catch(Exception1 ex) { handling ex; } finally { finalStatements; } Next statement; 25 animation Suppose an exception of type Exception1 is thrown in statement2
  • 26. Trace a Program Execution try { statement1; statement2; statement3; } catch(Exception1 ex) { handling ex; } finally { finalStatements; } Next statement; 26 animation The exception is handled.
  • 27. Trace a Program Execution try { statement1; statement2; statement3; } catch(Exception1 ex) { handling ex; } finally { finalStatements; } Next statement; 27 animation The final block is always executed.
  • 28. Trace a Program Execution try { statement1; statement2; statement3; } catch(Exception1 ex) { handling ex; } finally { finalStatements; } Next statement; 28 animation The next statement in the method is now executed.
  • 29. Trace a Program Execution try { statement1; statement2; statement3; } catch(Exception1 ex) { handling ex; } catch(Exception2 ex) { handling ex; throw ex; } finally { finalStatements; } Next statement; 29 animation statement2 throws an exception of type Exception2.
  • 30. Trace a Program Execution try { statement1; statement2; statement3; } catch(Exception1 ex) { handling ex; } catch(Exception2 ex) { handling ex; throw ex; } finally { finalStatements; } Next statement; 30 animation Handling exception
  • 31. Trace a Program Execution try { statement1; statement2; statement3; } catch(Exception1 ex) { handling ex; } catch(Exception2 ex) { handling ex; throw ex; } finally { finalStatements; } Next statement; 31 animation Execute the final block
  • 32. Trace a Program Execution try { statement1; statement2; statement3; } catch(Exception1 ex) { handling ex; } catch(Exception2 ex) { handling ex; throw ex; } finally { finalStatements; } Next statement; 32 animation Rethrow the exception and control is transferred to the caller
  • 33. Cautions When Using Exceptions  Exception handling separates error-handling code from normal programming tasks, thus making programs easier to read and to modify. Be aware, however, that exception handling usually requires more time and resources because it requires instantiating a new exception object, rolling back the call stack, and propagating the errors to the calling methods. When to Throw Exceptions An exception occurs in a method. If you want the exception to be processed by its caller, you should create an exception object and throw it. If you can handle the exception in the method where it occurs, there is no need to throw it. 33
  • 34. When to Use Exceptions When should you use the try-catch block in the code? You should use it to deal with unexpected error conditions. Do not use it to deal with simple, expected situations. For example, the following code 34 try { System.out.println(refVar.toString()); } catch (NullPointerException ex) { System.out.println("refVar is null"); }
  • 35. When to Use Exceptions 35 if (refVar != null) System.out.println(refVar.toString()); else System.out.println("refVar is null");
  • 36. Defining Custom Exception Classes 36  Use the exception classes in the API whenever possible.  Define custom exception classes if the predefined classes are not sufficient.  Define custom exception classes by extending Exception or a subclass of Exception.
  • 37. Custom Exception Class Example 37 The setRadius method throws an exception if the radius is negative. Suppose you wish to pass the radius to the handler, you have to create a custom exception class. Run TestCircleWithRadiusException CircleWithRadiusException InvalidRadiusException
  • 38. Assertions An assertion is a Java statement that enables you to assert an assumption about your program. An assertion contains a Boolean expression that should be true during program execution. Assertions can be used to assure program correctness and avoid logic errors. 38
  • 39. Declaring Assertions An assertion is declared using the new Java keyword assert in JDK 1.4 as follows: assert assertion; or assert assertion : detailMessage; where assertion is a Boolean expression and detailMessage is a primitive-type or an Object value. 39
  • 40. Executing Assertions When an assertion statement is executed, Java evaluates the assertion. If it is false, an AssertionError will be thrown. The AssertionError class has a no-arg constructor and seven overloaded single-argument constructors of type int, long, float, double, boolean, char, and Object. For the first assert statement with no detail message, the no-arg constructor of AssertionError is used. For the second assert statement with a detail message, an appropriate AssertionError constructor is used to match the data type of the message. Since AssertionError is a subclass of Error, when an assertion becomes false, the program displays a message on the console and exits. 40
  • 41. Executing Assertions Example public class AssertionDemo { public static void main(String[] args) { int i; int sum = 0; for (i = 0; i < 10; i++) { sum += i; } assert i == 10; assert sum > 10 && sum < 5 * 10 : "sum is " + sum; } } 41
  • 42. Compiling Programs with Assertions Since assert is a new Java keyword introduced in JDK 1.4, you have to compile the program using a JDK 1.4 compiler. Furthermore, you need to include the switch –source 1.4 in the compiler command as follows: javac –source 1.4 AssertionDemo.java NOTE: If you use JDK 1.5, there is no need to use the –source 1.4 option in the command. 42
  • 43. Running Programs with Assertions By default, the assertions are disabled at runtime. To enable it, use the switch –enableassertions, or –ea for short, as follows: java –ea AssertionDemo Assertions can be selectively enabled or disabled at class level or package level. The disable switch is –disableassertions or –da for short. For example, the following command enables assertions in package package1 and disables assertions in class Class1. java –ea:package1 –da:Class1 AssertionDemo 43
  • 44. Using Exception Handling or Assertions Assertion should not be used to replace exception handling. Exception handling deals with unusual circumstances during program execution. Assertions are to assure the correctness of the program. Exception handling addresses robustness and assertion addresses correctness. Like exception handling, assertions are not used for normal tests, but for internal consistency and validity checks. Assertions are checked at runtime and can be turned on or off at startup time. 44
  • 45. Another good use of assertions is place assertions in a switch statement without a default case. For example, 45 switch (month) { case 1: ... ; break; case 2: ... ; break; ... case 12: ... ; break; default: assert false : "Invalid month: " + month }
  • 46. The File Class The File class is intended to provide an abstraction that deals with most of the machine-dependent complexities of files and path names in a machine- independent fashion. The filename is a string. The File class is a wrapper class for the file name and its directory path. 46
  • 47. Obtaining file properties and manipulating file 47
  • 48. Reading Data from the Web Just like you can read data from a file on your computer, you can read data from a file on the Web. 48
  • 49. Reading Data from the Web URL url = new URL("www.google.com/index.html"); After a URL object is created, you can use the openStream() method defined in the URL class to open an input stream and use this stream to create a Scanner object as follows: Scanner input = new Scanner(url.openStream()); 49 Run ReadFileFromURL