public class Fraction {
private int num;
private int den;
Fraction (int num, int den) {
this.num = num;
this.den = den;
reduce();
}
}
What stops us from calling new Fraction(1, 0)?
Unique problem:
new Fraction(1, 0)
Exceptions give a way of:
Fraction (int num, int den) throws ArithmeticException {
if (den == 0) {
throw new ArithmeticException("division by zero");
}
this.num = num;
this.den = den;
reduce();
}
When throw ... is executed, method call halts
return statement, but nothing returned; no Fraction creatednew Fraction(1, 0) throws the exceptionWhen an exception is thrown it can be caught
Fraction f;
try {
// some code that could throw an exception
f = newFraction(getNum(), getDen());
} catch (ArithmeticException e) {
// code to be executed if exception is thrown
System.out.println(e);
System.out.println("Using default value of 0/1");
f = newFraction(0, 1);
}
try-catch block
InputStream in
System.in
in.read() returns one character at a time from terminal input
int
0 through 255 represents char
-1 represents end of streamIOException if something goes wrong123, -23 represent numbersMammoth, 12a3 don’t represent numbersWrite a program that
1 yes 2 no -321
int
in.read() to get individual charactersint value?Implement solution with no exception handling first