Java Reference
In-Depth Information
program syntactically illegal. The compiler will issue the following error mes-
sage and refuse to compile the program:
Error: Exception java.lang. Exception must be caught or it must
be declared in the throws-clause of this method C.first().
To get around this problem, place a throws-clause throws Exception ” in
the method header:
public static void first() throws Exception {
throw new Exception();
}
The occurrence of the throws-clause relieves the method of the responsibil-
ity of catching objects of the mentioned classes and places that burden on any
method that calls it. In the program given above, method main is now responsi-
ble for thrown Exceptions . It can relieve itself of this responsibility by having
its own throws-clause.
/** = the value r that satisfies x = q * y + r and 0 <= r < y for some q.
Throw an IllegalArgumentException if y = 0. */
public static int mod2( in t x, int y) {
try {
/* { Because q * y = (-q) * (-y) , we have: mod(x, y) = mod(x, -y). } */
y= Math.abs(y);
int r= x % y;
/* For x>=0,mod(x,y)=x%y */
if (x >= 0)
{ return r; }
/* For x<0 : x%y is the value r' that satisfies
x=q*y+r'and-y<r'<=0
= <manipulate>
x=(q-1)*y+(r'+y)and-0<r'+y<=y
Hence, x mod y is x%y+y */
return r+y;
} catch (ArithmeticException ae) {
throw new IllegalArgumentException("x mod 0 is illegal");
}
}
Figure 10.9:
A second version, mod2 , of function mod
Search WWH ::




Custom Search