Exceptions - PowerPoint PPT Presentation

1 / 31
About This Presentation
Title:

Exceptions

Description:

distinguish between checked and unchecked exception classes in Java; ... Checked and unchecked exceptions. Java Compiler. RuntimeException. NumberFormatException ... – PowerPoint PPT presentation

Number of Views:89
Avg rating:3.0/5.0
Slides: 32
Provided by: aaron63
Category:

less

Transcript and Presenter's Notes

Title: Exceptions


1
Exceptions
By the end of this lecture you should be able to
  • explain the term exception
  • distinguish between checked and unchecked
    exception classes in Java
  • claim an exception using a throws clause
  • throw an exception using a throw command
  • catch an exception in a try catch block
  • define and use your own exception classes.

2
Introduction
Java run-time environment
THROWS an exception
If an error occurs
3
Pre-defined exception classes in Java
Throwable
4
Checked and unchecked exceptions
RuntimeException
Java Compiler
IOException
NumberFormatException
FileNotFoundException
5
Handling exceptions an example
A program that allows a user to enter an aptitude
test mark at the keyboard.
public class AptitudeTest public static void
main (String args) int score
System.out.print("Enter aptitude test score ")
score TestException.getInteger( ) //
test score here
6
Outline TestException class
public class TestException public static int
getInteger() // code for method goes
here
7
The read method of System.in
array of bytes
System.in.read(
)
104,
101,
108,
108,
111,
13,
10
"hello"
8
Coding the getInteger method
This is a first attempt, it will not compile!
byte buffer new byte512
System.in.read(buffer) String s new String
(buffer) s s.trim() int num
Integer.parseInt(s) return num
System.in.read(buffer)
  • System.in may throw a checked IOException

9
Dealing with exceptions
Whenever a method that throws a checked
exception, the Java compiler insists that we
acknowledge this exception in some way. There
are always two ways to deal with an exception
  • Deal with the exception within the method by
    catching it
  • Pass on the exception out of the method by
    claiming it.

10
Claiming an exception
Claiming an exception refers to a given method
having been marked to indicate that it will pass
on an exception object that it might generate.
To claim an exception we add a throws clause to
our method header
import java.io. public class TestException
private static int getInteger( ) throws
IOException // as before
11
Revisiting the AptitudeTest class
public class AptitudeTest public static void
main (String args) int score
System.out.print("Enter aptitude test score ")
score TestException.getInteger( ) //
test score here
score TestException.getInteger( )
12
Fixing the problem
import java.io. public class AptitudeTest
public static void main (String args) throws
IOException int score
System.out.print("Enter aptitude test score ")
score TestException.getInteger( ) if
(score gt 50) System.out.println("Yo
u have a place on the course!")
else System.out.println("Sorry, you
failed your test")
13
A test run
Enter aptitude test score
12w
java.lang.NumberFormatException 12w at
java.lang.Integer.parseInt(Integer.java418) at
java.lang.Integer.parseInt(Integer.java458) at
TestException.getInteger(TestException.java10)
at AptitudeTest.main(AptitudeTest.java11
14
NumberFormatException
byte buffer new byte512
System.in.read(buffer) String s new String
(buffer) s s.trim() int num
Integer.parseInt(s) return num
int num Integer.parseInt(s)
15
Catching an exception
throw Exception
method
catch Exception
In order to trap the exception object in a catch
block you must surround the code that could
generate the exception in a try block.
16
Syntax for using a try and catch block
try // code that could generate an
exception catch (Exception e) // action
to be taken when an exception occurs // other
instructions could be placed here
17
(No Transcript)
18
import java.io. public class AptitudeTest2
public static void main (String args)
try // as before
score TestException.getInteger( )
// as before catch
(NumberFormatException e)
System.out.println("You entered an invalid
number!") catch (IOException e)
System.out.println(e)
System.out.println("Goodbye")
19
Test Run of ApititudeTest2
Enter aptitude test score
12w
You entered an invalid number! Goodbye
20
import java.io. public class AptitudeTest2
public static void main (String args)
try // as before
score TestException.getInteger( )
// as before catch
(NumberFormatException e)
System.out.println("You entered an invalid
number!") catch (IOException e)
System.out.println(e)
System.out.println("Goodbye")
21
import java.io. public class TestException
private static int getInteger( ) throws
IOException byte buffer new byte512
System.in.read(buffer) String s new String
(buffer) s s.trim() int num
Integer.parseInt(s) return num
22
Exceptions in GUI applications
room should be a number
23
Using exceptions in your own classes
Look back at the Bank constructor
public Bank(int sizeIn) list new
BankAccountsizeIn total 0
A negative value would not be a valid array
size This would cause an exception in the
program The name of the exception is
NegativeArraySizeException.
24
Making use of exceptions a first attempt
public Bank(int sizeIn) throws
NegativeArraySizeException list new
BankAccountsizeIn total 0
25
Making use of exceptions a second attempt
public Bank (int sizeIn) throws Exception if
(sizeIn lt 0) throw new Exception ("cannot
set a negative size") else list
new BankAccountsizeIn total 0
26
Testing for the exception
public class BankProgram public static void
main(String args) try
System.out.print(Maximum number of accounts?
) size EasyScanner.nextInt()
Bank myBank new Bank(size) // rest of code
here catch (Exception e)
System.out.println(e.getMessage())
// other static methods here as before
27
Creating your own exception classes
public class NegativeSizeException extends
Exception public NegativeSizeException ()
super("cannot set a negative size")
public NegativeSizeException (String message)
super (message)
28
Amending the Bank constructor
public Bank (int sizeIn) throws
NegativeSizeException if (sizeIn lt 0)
throw new NegativeSizeException()
else list new
BankAccountsizeIn total 0
29
public class BankProgram public static void
main(String args) try
System.out.print(Maximum number of accounts?
) size EasyScanner.nextInt()
Bank myBank new Bank(size) // rest of
code here catch (NegativeSizeException
e) System.out.println(e.getMessage())
System.out.println(due to error in Bank
constructor) catch (Exception e)
System.out.println(Some
unforseen error)
e.printStackTrace() // other
static methods here as before
30
Re-throwing exceptions
public Bank (int sizeIn)
throws NegativeSizeException try
list new BankAccountsizeIn total
0 catch (NegativeArraySizeException
e) throw new NegativeSizeException ()

31
Documenting exceptions
/ Creates an empty collection of bank accounts
and fixes the maximum size of this collection
_at_param sizeIn The maximum size of
the collection of bank accounts
_at_throws NegativeSizeException If the collection
is sized with a negative value /
public Bank (int sizeIn) throws
NegativeSizeException // as before
Write a Comment
User Comments (0)
About PowerShow.com