cs 200 - programming i: exceptions€¦ · command-line arguments exceptions passing command-line...
TRANSCRIPT
![Page 1: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/1.jpg)
CS 200 - Programming I: Exceptions
Marc Renault
Department of Computer SciencesUniversity of Wisconsin – Madison
Spring 2018TopHat Sec 3 (AM) Join Code: 427811TopHat Sec 4 (PM) Join Code: 165455
![Page 2: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/2.jpg)
Command-Line Arguments Exceptions
Command-Line Arguments
![Page 3: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/3.jpg)
Command-Line Arguments Exceptions
Passing Command-Line Arguments
Example: java CmdLineEx arg0 agr1 arg2
Command-Line ArgumentsArguments passed to the program when it is launched.In example: arg0, arg1, arg2
String[] argsPassed to the main method via the String[] args.In example: String[] args = {"arg0","arg1","arg2"}.
1/29
![Page 4: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/4.jpg)
Command-Line Arguments Exceptions
Passing Command-Line Arguments
Example: java CmdLineEx arg0 agr1 arg2
Command-Line ArgumentsArguments passed to the program when it is launched.In example: arg0, arg1, arg2
String[] argsPassed to the main method via the String[] args.In example: String[] args = {"arg0","arg1","arg2"}.
1/29
![Page 5: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/5.jpg)
Command-Line Arguments Exceptions
TopHat Question 1
What is the output when executed using the commandjava CmdLineEx Do or do not, there is no try.
public class CmdLineEx {
public static void main(String [] args) {int i = 0;for(String s: args) {
i += s.length ();}System.out.print(i);
}
}
2/29
![Page 6: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/6.jpg)
Command-Line Arguments Exceptions
Command-Line Argument Exercise
Write a program that receives from the command line both astring and action to perform (either changing to upper case orlower case). The command-line arguments are organized asfollows:
-s str , where str is the string to transform-l to lowercase-u to uppercase
There should only be one of -l or -u. The arguments should behandled in any order.After parsing the arguments, the program outputs the string,having converted to upper or lower case as per thecommand-line arguments.
3/29
![Page 7: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/7.jpg)
Command-Line Arguments Exceptions
Exceptions
![Page 8: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/8.jpg)
Command-Line Arguments Exceptions
Exceptions
What is an exception?Shorthand for “an exceptional event”.An event that interrupts the normal flow of the program.
What causes these events?
A failure of the machine where the program is running.A programming error.A user goes off the “happy path”.
Why use exceptions?Separates error-checking from normal “happy path” code.Organized with try-catch-finally and throws.
4/29
![Page 9: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/9.jpg)
Command-Line Arguments Exceptions
Exceptions
What is an exception?Shorthand for “an exceptional event”.An event that interrupts the normal flow of the program.
What causes these events?A failure of the machine where the program is running.
A programming error.A user goes off the “happy path”.
Why use exceptions?Separates error-checking from normal “happy path” code.Organized with try-catch-finally and throws.
4/29
![Page 10: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/10.jpg)
Command-Line Arguments Exceptions
Exceptions
What is an exception?Shorthand for “an exceptional event”.An event that interrupts the normal flow of the program.
What causes these events?A failure of the machine where the program is running.A programming error.
A user goes off the “happy path”.
Why use exceptions?Separates error-checking from normal “happy path” code.Organized with try-catch-finally and throws.
4/29
![Page 11: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/11.jpg)
Command-Line Arguments Exceptions
Exceptions
What is an exception?Shorthand for “an exceptional event”.An event that interrupts the normal flow of the program.
What causes these events?A failure of the machine where the program is running.A programming error.A user goes off the “happy path”.
Why use exceptions?Separates error-checking from normal “happy path” code.Organized with try-catch-finally and throws.
4/29
![Page 12: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/12.jpg)
Command-Line Arguments Exceptions
Exceptions
What is an exception?Shorthand for “an exceptional event”.An event that interrupts the normal flow of the program.
What causes these events?A failure of the machine where the program is running.A programming error.A user goes off the “happy path”.
Why use exceptions?Separates error-checking from normal “happy path” code.Organized with try-catch-finally and throws.
4/29
![Page 13: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/13.jpg)
Command-Line Arguments Exceptions
Java Exception Hierarchy
Object
Throwable
Error
...
Exception
Runtime
...
...
5/29
![Page 14: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/14.jpg)
Command-Line Arguments Exceptions
Errors
CausesErrors are caused by abnormal conditions beyond the control ofthe programmer causing the program to fail such as hardwarefailures.
Some Examplesjava.io.IOError
java.lang.OutOfMemoryError
java.lang.LinkageError
6/29
![Page 15: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/15.jpg)
Command-Line Arguments Exceptions
Java Exception Hierarchy
Object
Throwable
Error
...
Exception
Runtime
...
...
7/29
![Page 16: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/16.jpg)
Command-Line Arguments Exceptions
Runtime Exception
CausesRuntime Exceptions are typically caused by programmingerrors (bugs) not caught at compile time such as trying toaccess an out of bounds cell in an array.
Some Examplesjava.lang.NullPointerExceptionjava.lang.IndexOutOfBoundsException
java.lang.ArrayIndexOutOfBoundsExceptionjava.lang.StringIndexOutOfBoundsException
java.lang.ArithmeticException
8/29
![Page 17: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/17.jpg)
Command-Line Arguments Exceptions
Java Exception Hierarchy
Object
Throwable
Error
...
Exception
Runtime
...
...
9/29
![Page 18: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/18.jpg)
Command-Line Arguments Exceptions
Java Exception Hierarchy
Unchecked
Object
Throwable
Error
...
Exception
Runtime
...
...
9/29
![Page 19: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/19.jpg)
Command-Line Arguments Exceptions
Java Exception Hierarchy
Unchecked
Checked
Object
Throwable
Error
...
Exception
Runtime
...
...
9/29
![Page 20: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/20.jpg)
Command-Line Arguments Exceptions
Unchecked vs Checked
Unchecked ExceptionAn unchecked exception is an exceptional condition that theapplication usually cannot anticipate or recover from. Theseare:
ErrorsRuntime exceptions
Checked ExceptionsAll other exceptions are checked exceptions. A method musthandle all checked exceptions by either:
Using a try-catch block, orThrowing the exception.
10/29
![Page 21: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/21.jpg)
Command-Line Arguments Exceptions
Unchecked vs Checked
Unchecked ExceptionAn unchecked exception is an exceptional condition that theapplication usually cannot anticipate or recover from. Theseare:
ErrorsRuntime exceptions
Checked ExceptionsAll other exceptions are checked exceptions. A method musthandle all checked exceptions by either:
Using a try-catch block, orThrowing the exception.
10/29
![Page 22: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/22.jpg)
Command-Line Arguments Exceptions
TopHat Question 2What kind of exception isjava.util.InputMismatchException?The following code compiles. When the user inputs “a”, theprogram terminates with ajava.util.InputMismatchException.import java.util.Scanner;
public class ExceptionEx1 {
public static void main(String [] arg) {Scanner sc = new Scanner(System.in);int a = sc.nextInt ();System.out.println("Value is " + a);
}
}
11/29
![Page 23: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/23.jpg)
Command-Line Arguments Exceptions
try-catch
try {tryStmt1;...tryStmtN;
}catch (AnException e) {
catchStmt1;...catchStmtN;
}
Control Flow
Try Stmt Block
AnException?
AnExceptionCatch Block
Followingstatements
Yes
No
12/29
![Page 24: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/24.jpg)
Command-Line Arguments Exceptions
try-catch
try {tryStmt1;...tryStmtN;
}catch (AnException e) {
catchStmt1;...catchStmtN;
}
Control Flow
Try Stmt Block
AnException?
AnExceptionCatch Block
Followingstatements
Yes
No
12/29
![Page 25: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/25.jpg)
Command-Line Arguments Exceptions
TopHat Question 3
What is the output when the user enters “z”?
Scanner sc = new Scanner(System.in);try {
int a = sc.nextInt ();System.out.println("Value is " + a);
}catch(Exception e) {
System.out.print("Catch.");}System.out.print("Done.");
13/29
![Page 26: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/26.jpg)
Command-Line Arguments Exceptions
Catching the Exact Exception
Scanner sc = new Scanner(System.in);try {
int a = sc.nextInt ();System.out.println("Value is " + a);
}catch(Exception e) {
System.out.print("Catch.");}
Best PracticeWhen catching exceptions, be as precise as possible about theexception.
14/29
![Page 27: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/27.jpg)
Command-Line Arguments Exceptions
Catching the Exact Exception
Scanner sc = new Scanner(System.in);try {
int a = sc.nextInt ();System.out.println("Value is " + a);
}catch(InputMismatchException e) {
System.out.print("Input was not an integer.");}
Best PracticeWhen catching exceptions, be as precise as possible about theexception.
14/29
![Page 28: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/28.jpg)
Command-Line Arguments Exceptions
Stack Trace
Scanner sc = new Scanner(System.in);try {
int a = sc.nextInt ();System.out.println("Value is " + a);
}catch(InputMismatchException e) {
System.out.println("Input was not an integer.");e.printStackTrace ();
}
Stack TracePrints the trace of methods calls (with line numbers) on thestack leading to the exception.Throwable has an instance method printStackTrace().
15/29
![Page 29: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/29.jpg)
Command-Line Arguments Exceptions
Basic try-catch-finally
try {tryStatements;
}catch (AnException e) {
catchStatements;}finally {
finallyStatements;}
Basic Control Flow
Try Stmt Block
AnException?
AnExceptionCatch Block
Finally Stmt Block
Followingstatements
Yes
No
16/29
![Page 30: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/30.jpg)
Command-Line Arguments Exceptions
Basic try-catch-finally
try {tryStatements;
}catch (AnException e) {
catchStatements;}finally {
finallyStatements;}
Basic Control Flow
Try Stmt Block
AnException?
AnExceptionCatch Block
Finally Stmt Block
Followingstatements
Yes
No
16/29
![Page 31: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/31.jpg)
Command-Line Arguments Exceptions
TopHat Question 4
What is the output when the user enters “z”?
Scanner sc = new Scanner(System.in);try {
int a = sc.nextInt ();System.out.print("Value is " + a + ".");
}catch(InputMismatchException e) {
System.out.print("Catch.");}finally {
System.out.print("Finally.");}System.out.print("Done.");
17/29
![Page 32: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/32.jpg)
Command-Line Arguments Exceptions
TopHat Question 5
What is the output when the user enters “2”?
Scanner sc = new Scanner(System.in);try {
int a = sc.nextInt ();System.out.print("Value is " + a + ".");
}catch(InputMismatchException e) {
System.out.print("Catch.");}finally {
System.out.print("Finally.");}System.out.print("Done.");
18/29
![Page 33: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/33.jpg)
Command-Line Arguments Exceptions
Multiple catch
try {tryStatements;
}catch (Exception1 e) {
catch1Statements;}catch (Exception2 e) {
catch1Statements;}...catch (ExceptionN e) {
}
Control Flow
Try Stmt Block
CaughtException?
Exception1Catch Block
ExceptionNCatch Block
Followingstatements
No
19/29
![Page 34: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/34.jpg)
Command-Line Arguments Exceptions
Multiple catch
try {tryStatements;
}catch (Exception1 e) {
catch1Statements;}catch (Exception2 e) {
catch1Statements;}...catch (ExceptionN e) {
}
Control Flow
Try Stmt Block
CaughtException?
Exception1Catch Block
ExceptionNCatch Block
Followingstatements
No
19/29
![Page 35: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/35.jpg)
Command-Line Arguments Exceptions
TopHat Question 6What is the output when the user enters “0”?
Scanner sc = new Scanner(System.in);try {
int a = sc.nextInt ();System.out.print("Value is " + 10/a + ".");
}catch(InputMismatchException e) {
System.out.print("Catch Mismatch.");}catch(ArithmeticException e) {
System.out.print("Catch Div 0.");}finally {
System.out.print("Finally.");}System.out.print("Done.");
20/29
![Page 36: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/36.jpg)
Command-Line Arguments Exceptions
Advanced try-catch-finally
try {tryStatements;
}catch (AnException e) {
catchStatements;}finally {
finallyStatements;}
What if the catch blockthrows an exception?
The finally block is stillexecuted.
What if the catch blockreturns?The finally block is stillexecuted.
What if the try blockreturns?The finally block is stillexecuted.
What if the try block throwsan uncaught exception?The finally block is stillexecuted.
21/29
![Page 37: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/37.jpg)
Command-Line Arguments Exceptions
Advanced try-catch-finally
try {tryStatements;
}catch (AnException e) {
catchStatements;}finally {
finallyStatements;}
What if the catch blockthrows an exception?The finally block is stillexecuted.
What if the catch blockreturns?The finally block is stillexecuted.
What if the try blockreturns?The finally block is stillexecuted.
What if the try block throwsan uncaught exception?The finally block is stillexecuted.
21/29
![Page 38: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/38.jpg)
Command-Line Arguments Exceptions
Advanced try-catch-finally
try {tryStatements;
}catch (AnException e) {
catchStatements;}finally {
finallyStatements;}
What if the catch blockthrows an exception?The finally block is stillexecuted.
What if the catch blockreturns?
The finally block is stillexecuted.
What if the try blockreturns?The finally block is stillexecuted.
What if the try block throwsan uncaught exception?The finally block is stillexecuted.
21/29
![Page 39: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/39.jpg)
Command-Line Arguments Exceptions
Advanced try-catch-finally
try {tryStatements;
}catch (AnException e) {
catchStatements;}finally {
finallyStatements;}
What if the catch blockthrows an exception?The finally block is stillexecuted.
What if the catch blockreturns?The finally block is stillexecuted.
What if the try blockreturns?The finally block is stillexecuted.
What if the try block throwsan uncaught exception?The finally block is stillexecuted.
21/29
![Page 40: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/40.jpg)
Command-Line Arguments Exceptions
Advanced try-catch-finally
try {tryStatements;
}catch (AnException e) {
catchStatements;}finally {
finallyStatements;}
What if the catch blockthrows an exception?The finally block is stillexecuted.
What if the catch blockreturns?The finally block is stillexecuted.
What if the try blockreturns?
The finally block is stillexecuted.
What if the try block throwsan uncaught exception?The finally block is stillexecuted.
21/29
![Page 41: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/41.jpg)
Command-Line Arguments Exceptions
Advanced try-catch-finally
try {tryStatements;
}catch (AnException e) {
catchStatements;}finally {
finallyStatements;}
What if the catch blockthrows an exception?The finally block is stillexecuted.
What if the catch blockreturns?The finally block is stillexecuted.
What if the try blockreturns?The finally block is stillexecuted.
What if the try block throwsan uncaught exception?The finally block is stillexecuted.
21/29
![Page 42: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/42.jpg)
Command-Line Arguments Exceptions
Advanced try-catch-finally
try {tryStatements;
}catch (AnException e) {
catchStatements;}finally {
finallyStatements;}
What if the catch blockthrows an exception?The finally block is stillexecuted.
What if the catch blockreturns?The finally block is stillexecuted.
What if the try blockreturns?The finally block is stillexecuted.
What if the try block throwsan uncaught exception?
The finally block is stillexecuted.
21/29
![Page 43: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/43.jpg)
Command-Line Arguments Exceptions
Advanced try-catch-finally
try {tryStatements;
}catch (AnException e) {
catchStatements;}finally {
finallyStatements;}
What if the catch blockthrows an exception?The finally block is stillexecuted.
What if the catch blockreturns?The finally block is stillexecuted.
What if the try blockreturns?The finally block is stillexecuted.
What if the try block throwsan uncaught exception?The finally block is stillexecuted.
21/29
![Page 44: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/44.jpg)
Command-Line Arguments Exceptions
TopHat Question 7
What is the output when the user enters “z”?
Scanner sc = new Scanner(System.in);try {
int a = sc.nextInt ();System.out.print("Value is " + a + ".");return;
}catch(InputMismatchException e) {
System.out.print("Catch.");return;
}finally {
System.out.print("Finally.");}
22/29
![Page 45: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/45.jpg)
Command-Line Arguments Exceptions
Basic Throwing ExceptionsCreating and Using Exceptions
Constructors:Exception() – Creates an Exception object.Exception(msg) – Creates an Exception object containingthe message msg.
Some methods:printStackTrace() – Prints the exception stack trace.getMessage() – Returns the message associated with theexception.
Throwing an Exceptionthrow aThrowable;
Stops normal executions and throws an exception.E.g.throw new Exception("An exception!");
23/29
![Page 46: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/46.jpg)
Command-Line Arguments Exceptions
Basic Throwing ExceptionsCreating and Using Exceptions
Constructors:Exception() – Creates an Exception object.Exception(msg) – Creates an Exception object containingthe message msg.
Some methods:printStackTrace() – Prints the exception stack trace.getMessage() – Returns the message associated with theexception.
Throwing an Exceptionthrow aThrowable;
Stops normal executions and throws an exception.E.g.throw new Exception("An exception!");
23/29
![Page 47: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/47.jpg)
Command-Line Arguments Exceptions
Basic Throwing ExceptionsCreating and Using Exceptions
Constructors:Exception() – Creates an Exception object.Exception(msg) – Creates an Exception object containingthe message msg.
Some methods:printStackTrace() – Prints the exception stack trace.getMessage() – Returns the message associated with theexception.
Throwing an Exceptionthrow aThrowable;
Stops normal executions and throws an exception.E.g.throw new Exception("An exception!");
23/29
![Page 48: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/48.jpg)
Command-Line Arguments Exceptions
TopHat Question 8What is the output when the user enters “z”?Scanner sc = new Scanner(System.in);try {
int a = sc.nextInt ();if(a <= 0)
throw new Exception("Error: Val <= 0.");System.out.print("Value is " + 10/a + ".");
}catch(InputMismatchException e) {
System.out.print("Catch Mismatch.");}catch(Exception e) {
System.out.print(e.getMessage ());}finally {
System.out.print("Finally.");}System.out.print("Done.");
24/29
![Page 49: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/49.jpg)
Command-Line Arguments Exceptions
TopHat Question 9What is the output when the user enters “0”?Scanner sc = new Scanner(System.in);try {
int a = sc.nextInt ();if(a <= 0)
throw new Exception("Error: Val <= 0.");System.out.print("Value is " + 10/a + ".");
}catch(InputMismatchException e) {
System.out.print("Catch Mismatch.");}catch(Exception e) {
System.out.print(e.getMessage ());}finally {
System.out.print("Finally.");}System.out.print("Done.");
25/29
![Page 50: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/50.jpg)
Command-Line Arguments Exceptions
Methods Throwing ExceptionsSpecifying Exceptions Thrown... someMethod(...) throws exception1,exception2,...
Part of the method header.All checked exceptions must be listed.Unchecked ones are optional.
Throwing vs CatchingA method, someMethod, that throws a checked exception ispassing the exception to the caller.The caller can either:
Throw the exception further up the stack calls, orPut the method call to someMethod in a try block andhandle the exception in a catch block.
26/29
![Page 51: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/51.jpg)
Command-Line Arguments Exceptions
Methods Throwing ExceptionsSpecifying Exceptions Thrown... someMethod(...) throws exception1,exception2,...
Part of the method header.All checked exceptions must be listed.Unchecked ones are optional.
Throwing vs CatchingA method, someMethod, that throws a checked exception ispassing the exception to the caller.
The caller can either:Throw the exception further up the stack calls, orPut the method call to someMethod in a try block andhandle the exception in a catch block.
26/29
![Page 52: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/52.jpg)
Command-Line Arguments Exceptions
Methods Throwing ExceptionsSpecifying Exceptions Thrown... someMethod(...) throws exception1,exception2,...
Part of the method header.All checked exceptions must be listed.Unchecked ones are optional.
Throwing vs CatchingA method, someMethod, that throws a checked exception ispassing the exception to the caller.The caller can either:
Throw the exception further up the stack calls, or
Put the method call to someMethod in a try block andhandle the exception in a catch block.
26/29
![Page 53: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/53.jpg)
Command-Line Arguments Exceptions
Methods Throwing ExceptionsSpecifying Exceptions Thrown... someMethod(...) throws exception1,exception2,...
Part of the method header.All checked exceptions must be listed.Unchecked ones are optional.
Throwing vs CatchingA method, someMethod, that throws a checked exception ispassing the exception to the caller.The caller can either:
Throw the exception further up the stack calls, orPut the method call to someMethod in a try block andhandle the exception in a catch block.
26/29
![Page 54: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/54.jpg)
Command-Line Arguments Exceptions
TopHat Question 10What is the output when the user enters “0”?
public static void div(int a, int b) throws Exception {if(b == 0)
throw new Exception("Error: a is 0.");System.out.print("Value is " + b/a + ".");
}
public static void main(String [] arg) {Scanner sc = new Scanner(System.in);int a = sc.nextInt ();try {
div(10, a);}catch(Exception e) {
System.out.print(e.getMessage ());}System.out.print("Done.");
}
27/29
![Page 55: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/55.jpg)
Command-Line Arguments Exceptions
TopHat Question 11What is the stack trace output when the program runs?
1 public class ExceptionEx11 {23 public static void f() throws Exception {4 throw new Exception ();5 }67 public static void main(String [] arg) {8 try {9 g();
10 }11 catch(Exception e) {12 e.printStackTrace ();13 }14 }1516 public static void g() throws Exception {17 f();18 }1920 }
28/29
![Page 56: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/56.jpg)
Command-Line Arguments Exceptions
Further Reading
COMP SCI 200: Programming IzyBooks.com, 2015.zyBook code:WISCCOMPSCI200Spring2018
Chapter 10. Exceptions
29/29
![Page 57: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/57.jpg)
Appendix References
Appendix
![Page 58: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/58.jpg)
Appendix References
References
![Page 59: CS 200 - Programming I: Exceptions€¦ · Command-Line Arguments Exceptions Passing Command-Line Arguments Example:java CmdLineEx arg0 agr1 arg2 Command-LineArguments Argumentspassedtotheprogramwhenitislaunched](https://reader033.vdocuments.net/reader033/viewer/2022053006/5f09a2907e708231d427c775/html5/thumbnails/59.jpg)
Appendix References
Image Sources I
https://brand.wisc.edu/web/logos/
http://www.zybooks.com/
30/29