You are on page 1of 3

CIS 265 Lecture Notes Chapter 13 - Exception Management

V. Matos

DRIVER

package csu.matos;

public class Driver {

/*******************************************************************
* Author: V. Matos
* Date: 15-Feb-2012
* Goal: Explore Exception mechanism in Java
* 1. division by zero example
* 2. user-created exception (NegativeRadiusException)
*/
public static void main(String[] args) {
// demo1DivisioByZero();
demo2NegativeRadius();
}

// //////////////////////////////////////////////////////////
private static void demo1DivisioByZero() {
int number1 = 100;
int number2 = 0;

try {
double result = computeDivision(number1, number2);
System.out.println(result);
} catch (Exception e) {
System.out.println("catch talking: " + e.getMessage());
e.printStackTrace();
}
finally {
System.out.println("1a. life goes on...");
}
System.out.println("2a. life continues to go on...");
}

// ///////////////////////////////////////////////////////////////////
private static double computeDivision(int number1, int number2)
throws Exception {
if (number2 == 0)
throw new Exception(
"ComputeDivision - NASTY MESSAGE zero divisor");
return 0;
}

// /////////////////////////////////////////////////////////////
private static void demo2NegativeRadius() {
// GOAL: do not allow user to create an 'impossible' circle
// reject creation/setting of a negative radius value.
try {
SimpleCircle sc1 = new SimpleCircle(-2);
sc1.showData();
sc1.setRadius(-1);
sc1.showData();

} catch (MyInvalidRadiusException e) {
System.out.println(e.getMessage());
e.printStackTrace();
} finally {
System.out.println("1b. life goes on ... ");
}

System.out.println("2b. life continues to go on ... ");


}

SimpleCircle Class

package csu.matos;

public class SimpleCircle {


// class variables
private int radius;

// constructors
public SimpleCircle() {
this.radius = 0;
}

public SimpleCircle(int radius) throws MyInvalidRadiusException {


if (radius < 0)
throw new MyInvalidRadiusException(
"E1002- Constructor talking -Impossible value for radius: "
+ radius);
else
this.radius = radius;
}

// mutators
public int getRadius() {
return radius;
}

public void setRadius(int radius) throws MyInvalidRadiusException {

if (radius < 0)
throw new MyInvalidRadiusException(
"E1001- Mutator talking - Impossible value for radius: "
+ radius);
else
this.radius = radius;

// user-defined methods
public void showData() {
System.out.println("SimpleCircle with radius: " + radius);
}
}

MyInvalidRadiusException Class

package csu.matos;

public class MyInvalidRadiusException extends Exception {

// this phrase will be used if the exception is


// created using no user-supplied message
String myMsg = "DEFAULT MSG - Invalid radius";

// constructors
public MyInvalidRadiusException() {
}

public MyInvalidRadiusException(String userSuppliedMessage) {


this.myMsg = userSuppliedMessage;
}

// caller will use this method to extract the contents of the exception
@Override
public String getMessage() {
return "MyInvalidRadiusException talking - " + myMsg;
}

Testing demo1ZeroDivision()

catch talking: ComputeDivision - NASTY MESSAGE zero divisor


1a. life goes on...
2a. life continues to go on...
java.lang.Exception: ComputeDivision - NASTY MESSAGE zero divisor
at csu.matos.Driver.computeDivision(Driver.java:39)
at csu.matos.Driver.demo1DivisioByZero(Driver.java:23)
at csu.matos.Driver.main(Driver.java:13)

Testing demo2InvalidRadius()

MyInvalidRadiusException talking - E1002- Constructor talking -Impossible value for radius: -2


1b. life goes on ...
2b. life continues to go on ...
csu.matos.MyInvalidRadiusException: MyInvalidRadiusException talking - E1002- Constructor
talking -Impossible value for radius: -2
at csu.matos.SimpleCircle.<init>(SimpleCircle.java:14)
at csu.matos.Driver.demo2NegativeRadius(Driver.java:48)
at csu.matos.Driver.main(Driver.java:14)

You might also like