CSC System Development with Java. Exception Handling. Department of Statistics and Computer Science. Budditha Hettige

Similar documents
Object Oriented Programming Exception Handling

Le L c e t c ur u e e 5 To T p o i p c i s c t o o b e b e co c v o e v r e ed e Exception Handling

Download link: Java Exception Handling

Lecture 20. Java Exceptional Event Handling. Dr. Martin O Connor CA166

Object oriented programming. Instructor: Masoud Asghari Web page: Ch: 7

Administration. Exceptions. Leftovers. Agenda. When Things Go Wrong. Handling Errors. CS 99 Summer 2000 Michael Clarkson Lecture 11

BBM 102 Introduction to Programming II Spring Exceptions

ECE 122. Engineering Problem Solving with Java

Exception Handling. Sometimes when the computer tries to execute a statement something goes wrong:

Exception Handling. Run-time Errors. Methods Failure. Sometimes when the computer tries to execute a statement something goes wrong:

Exceptions - Example. Exceptions - Example

Object Oriented Programming

Data Structure. Recitation IV

ITI Introduction to Computing II

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS

BBM 102 Introduction to Programming II Spring 2017

Exception-Handling Overview

Programming II (CS300)

ITI Introduction to Computing II

School of Informatics, University of Edinburgh

Exception Handling in Java. An Exception is a compile time / runtime error that breaks off the

Programming II (CS300)

COMP200 EXCEPTIONS. OOP using Java, based on slides by Shayan Javed

Introduction. Exceptions: An OO Way for Handling Errors. Common Runtime Errors. Error Handling. Without Error Handling Example 1

JAC444 - Lecture 4. Segment 1 - Exception. Jordan Anastasiade Java Programming Language Course

Fundamentals of Object Oriented Programming

Exceptions, try - catch - finally, throws keyword. JAVA Standard Edition

Exceptions Handling Errors using Exceptions

CS115. Chapter 17 Exception Handling. Prof. Joe X. Zhou Department of Computer Science. To know what is exception and what is exception handling

Exceptions vs. Errors Exceptions vs. RuntimeExceptions try...catch...finally throw and throws

What is the purpose of exceptions and exception handling? Vocabulary: throw/raise and catch/handle Exception propagation Java checked and unchecked

Std 12 Lesson-10 Exception Handling in Java ( 1

Introduction to Programming Using Java (98-388)

CSCI Object Oriented Design: Java Review Errors George Blankenship. Java Review - Errors George Blankenship 1

CSCI Object-Oriented Design. Java Review Topics. Program Errors. George Blankenship 1. Java Review Errors George Blankenship

Errors and Exceptions

Exception in thread "main" java.lang.arithmeticexception: / by zero at DefaultExceptionHandling.main(DefaultExceptionHandling.

CSC 1214: Object-Oriented Programming

C16b: Exception Handling

Exception Handling. Chapter 11. Outline. Example: The Quotient app What Are Exceptions? Java By Abstraction Chapter 11

Assoc. Prof. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved.

More on Exception Handling

COMP-202. Exceptions. COMP Exceptions, 2011 Jörg Kienzle and others

Chapter 11 Handling Exceptions and Events. Chapter Objectives

Correctness and Robustness

Computer Components. Software{ User Programs. Operating System. Hardware

EXCEPTION HANDLING. Summer 2018

Lecture 14 Summary 3/9/2009. By the end of this lecture, you will be able to differentiate between errors, exceptions, and runtime exceptions.

About This Lecture. Outline. Handling Unusual Situations. Reacting to errors. Exceptions

CSCI 261 Computer Science II

Introduction Unit 4: Input, output and exceptions

Program Correctness and Efficiency. Chapter 2

Reminder. Topics CSE What Are Exceptions?! Lecture 11 Exception Handling

OBJECT ORIENTED PROGRAMMING. Course 6 Loredana STANCIU Room B616

Chapter 15. Exception Handling. Chapter Goals. Error Handling. Error Handling. Throwing Exceptions. Throwing Exceptions

COMP1008 Exceptions. Runtime Error

More on Exception Handling

6.Introducing Classes 9. Exceptions

Here is a hierarchy of classes to deal with Input and Output streams.

Day 8. COMP1006/1406 Summer M. Jason Hinek Carleton University

A Third Look At Java. Chapter Seventeen Modern Programming Languages, 2nd ed. 1

National University. Faculty of Computer Since and Technology Object Oriented Programming

Chapter 13 Exception Handling

CS 61B Data Structures and Programming Methodology. July 7, 2008 David Sun

CS 3 Introduction to Software Engineering. 3: Exceptions

Exceptions and I/O: sections Introductory Programming. Errors in programs. Exceptions

Introductory Programming Exceptions and I/O: sections

Exceptions. Errors and Exceptions. Dealing with exceptions. What to do about errors and exceptions

Introduction to Software Design

CS159. Nathan Sprague

Exceptions. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 15

Chapter 12 Exception Handling

Lecture 19 Programming Exceptions CSE11 Fall 2013

CS 231 Data Structures and Algorithms, Fall 2016

Exceptions and Error Handling

Exception Handling. Chapter 11. Java By Abstraction Chapter 11. Outline What Are Exceptions?

CS 209 Programming in Java #10 Exception Handling

CMSC131. Exceptions and Exception Handling. When things go "wrong" in a program, what should happen.

CSC207H: Software Design. Exceptions. CSC207 Winter 2018

Typecasts and Dynamic Dispatch. Dynamic dispatch

COE318 Lecture Notes Week 10 (Nov 7, 2011)

Exceptions. What exceptional things might our programs run in to?

COMP 213. Advanced Object-oriented Programming. Lecture 17. Exceptions

Debugging and Handling Exceptions

Object Oriented Programming

Input-Output and Exception Handling

COSC 123 Computer Creativity. I/O Streams and Exceptions. Dr. Ramon Lawrence University of British Columbia Okanagan

What can go wrong in a Java program while running?

Unit 5 - Exception Handling & Multithreaded

EXCEPTIONS. Objectives. The try and catch Statements. Define exceptions. Use try, catch and finally statements. Describe exception categories

Full file at Chapter 2 - Inheritance and Exception Handling

16-Dec-10. Consider the following method:

I/O Streams. program. Standard I/O. File I/O: Setting up streams from files. program. File I/O and Exceptions. Dr. Papalaskari 1

Exceptions and assertions

I/O Streams. program. Standard I/O. File I/O: Setting up streams from files. program. File I/O and Exceptions. Dr. Papalaskari 1

Pages and 68 in [JN] conventions for using exceptions in Java. Chapter 8 in [EJ] guidelines for more effective use of exceptions.

EXCEPTIONS. Java Programming

Recitation 3. 2D Arrays, Exceptions

Internal Classes and Exceptions

Exceptions and Design

Transcription:

CSC 308 2.0 System Development with Java Exception Handling Department of Statistics and Computer Science 1

2

Errors Errors can be categorized as several ways; Syntax Errors Logical Errors Runtime Errors 3

Syntax Errors Error in the syntax of a sequence of characters or tokens that is intended to be written in a particular programming language All syntax errors can be reliably detected until run-time Many Syntax errors can be detected at compile-time 4

Common Java syntax errors Capitalization of key words Line xx: class or interface declaration expected Writing a string over a new line Line xx: ';' expected Missing brackets in a no-argument message Line xx: Invalid expression statement Forgetting to import a package Line nn: Method yyyy not found in class xxxx. 5

Syntax Error correction 1. Go to the error line 2. Identify the error 3. Correct the error Error description Error line You must have a good working knowledge of error messages to discover the cause of the error 6

Logical Errors Errors that indicate the logic used when coding the program failed to solve the problem You do not get error messages with logic errors Your only clue to the existence of logic errors is the production of wrong solutions 7

Common Logic Errors in Java Using a variable before it is given a value int x; x = x + 1; System.out.println("X = " + x); Misplaced Semi-colon (usually with a loop or if statement) if ( x > y) ; System.out.println("X is bigger"); Confusing the equivalence operator == with the assignment operator = 8

Logical error correction Debugging can be used to find what the logical errors in your program Debug line Results 9

Runtime Errors low-level errors dereference of a null pointer out-of-bounds array access divide by zero attempt to open a non-existent file for reading bad cast (e.g., casting an Object that is actually a Boolean to Integer) higher-level call to Stack's "pop" method for an empty stack call to "factorial" function with a negative number call to List's nextelement method when hasmoreelements is false 10

Runtime Errors contd.. Errors can arise due to User error providing a bad file name or a poorly formatted input file Programmer error These errors should be detected as early as possible to provide good feedback. 11

Exceptions can occur at many levels Hardware/operating system level. Arithmetic exceptions; divide by 0, under/overflow. Memory access violations; segfault, stack over/underflow. Language level. Type conversion; illegal values, improper casts. Bounds violations; illegal array indices. Bad references; null pointers. Program level. User defined exceptions. 12

Ways to handle errors Write an error message and quit. This doesn't provide any recovery Return a special value to indicate that an error occurred calling code check for an error. This can reduce the efficiency of the code Use a reference parameter or a global variable to hold an error code Use exceptions. This seems to be the method of choice for modern programming languages. 13

What Is an Exception? An exception is an event that occurs during the execution of a program that disrupts the normal flow of instructions. Example Divide by zero errors Accessing the elements of an array beyond its range Invalid input Hard disk crash Opening a non-existent file Heap memory exhausted 14

Example class DivByZero public static void main(string args[]) System.out.println(3/0); System.out.println( Pls. print me. ); Error Message Exception in thread "main" Divide by zero java.lang.arithmeticexception: / by zero at DivByZero.main(DivByZero.java:3) Where the error is occured 15

Default exception handler 1. Provided by Java runtime 2. Prints out exception description 3. Prints the stack trace 4. Hierarchy of methods where the exception occurred 5. Causes the program to terminate Exception in thread "main" java.lang.arithmeticexception: / by zero at DivByZero.main(DivByZero.java:3 16

What Happens When an Exception Occurs? 17

When an Exception Occurs? When an exception occurs within a method, the method creates an exception object and hands it off to the runtime system Creating an exception object and handing it to the runtime system is called throwing an exception Exception object contains information about the error, including its type and the state of the program when the error occurred 18

When an Exception Occurs? (1) The runtime system searches the call stack for a method that contains an exception handler 19

When an Exception Occurs? (2) When an appropriate handler is found, the runtime system passes the exception to the handler An exception handler is considered appropriate if the type of the exception object thrown matches the type that can be handled by the handler The exception handler chosen is said to catch the exception. If the runtime system exhaustively searches all the methods on the call stack without finding an appropriate exception handler, the runtime system (and, consequently, the program) terminates and uses the default exception handler 20

Searching the Call Stack for an Exception Handler 21

How exception handler works? Exception "thrown" here Exception handler Exception handler Thrown exception matched against first set of exception handlers If it fails to match, it is matched against next set of handlers, etc. If exception matches none of handlers, program is abandoned 22

Advantages Separating Error-Handling code from regular business logic code Propagating errors up the call stack Grouping and differentiating error types 23

Java Exception Handling A method can duck any exceptions thrown within it, thereby allowing a method farther up the call stack to catch it. Hence, only the methods that care about errors have to worry about detecting errors Any checked exceptions that can be thrown within a method must be specified in its throws clause 24

Grouping and Differentiating Error Types Because all exceptions thrown within a program are objects, the grouping or categorizing of exceptions is a natural outcome of the class hierarchy An example of a group of related exception classes in the Java platform are those defined in java.io IOException and its descendants IOException is the most general and represents any type of error that can occur when performing I/O Its descendants represent more specific errors. For example, FileNotFoundException means that a file could not be located on disk. 25

Catching Exceptions try <code to be monitored for exceptions> catch (<ExceptionType1> <ObjName>) <handler if ExceptionType1 occurs>... catch (<ExceptionTypeN> <ObjName>) <handler if ExceptionTypeN occurs> 26

Example 27

Multiple catch 28

How try and catch works? NO Match Try Catch Catch Statement after the last catch Leaves the method 29

Example 1. Execute This 2. Goto this catch() 3. Execute This 30

No any catch for matching??? 31

Catching Exceptions with finally Syntax: try <code to be monitored for exceptions> catch (<ExceptionType1> <ObjName>) <handler if ExceptionType1 occurs>... finally <code to be executed before the try block ends> 32

Catching Exceptions the finally Keyword Block of code is always executed despite of different scenarios: Forced exit occurs using a return, a continue or a break statement Normal completion Caught exception thrown Exception was thrown and caught in the method Uncaught exception thrown Exception thrown was not specified in any catch block in the method 33

How try and catch finaly works? Try Catch Catch NO Match Finally() Statement after the last catch 34

Sequence of Events for finally clause Preceding step try block throw statement matching catch finally next step 35

Throwing Exceptions Java allows you to throw exceptions (generate exceptions) throw <exception object>; An exception you throw is an object You have to create an exception object in the same way you create any other object Example: throw new ArithmeticException( testing... ); 36

Rules in Exception Handling A method is required to either catch or list all exceptions it might throw Except for Error or RuntimeException, or their subclasses If a method may cause an exception to occur but does not catch it, then it must say so using the throws keyword Applies to checked exceptions only Syntax: <type> <methodname> (<parameterlist>) throws <exceptionlist> <methodbody> 37

Sequence of Events for No throw Preceding step try block throw statement unmatched catch matching catch unmatched catch next step 38

Sequence of Events for throw Preceding step try block throw statement unmatched catch matching catch unmatched catch next step 39

The exception hierarchy 40

The Error and Exception Classes Throwable class Root class of exception classes Immediate subclasses Error Exception Exception class Conditions that user programs can reasonably deal with Usually the result of some flaws in the user program code Examples Division by zero error Array out-of-bounds error 41

The Error and Exception Classes Error class Used by the Java run-time system to handle errors occurring in the run-time environment Generally beyond the control of user programs Examples Out of memory errors Hard disk crash 42

User define Exception 43

Creating Your Own Exception Class Steps to follow Create a class that extends the RuntimeException or the Exception class Customize the class Members and constructors may be added to the class Example: class HateStringExp extends RuntimeException /* some code */ 44

Sample Code class TestHateString public static void main(string args[]) String input = "invalid input"; try if (input.equals("invalid input")) throw new HateStringExp(); System.out.println("Accept string."); catch (HateStringExp e) System.out.println("Hate string! ); class HateStringExp extends RuntimeException /* some code */ 45

Example public class CustomExceptionTest public static void main(string[] args) throws Exception int age = getage(); if (age < 0) throw new NegativeAgeException(age); Else System.out.println("Age entered is " + age); static int getage() return -10; 46

Exception class public class NegativeAgeException extends Exception private int age; public NegativeAgeException(int newage) age = newage; public String tostring() return "Age cannot be negative" + " " +age ; 47