In java a method that can throw an exception other than


Subtyping and Exceptions

In Java, a method that can throw an exception (other than from a subclass of Error or RuntimeException) must either catch the exception or specify the types of possible exceptions with a throws clause in the method declaration. For example, a method declaration might have the form public void f(int x) throws Exception1, Exception2 meaning that a call to f may either terminate normally or raise one of the listed exceptions (without catching them internally).

Assuming that the type of the method f in B is a subtype of the method f in A, class declarations of the following form are type correct in principle:
class A {
...
public Returntype1 f(Argtype1 x)...
}
class B extends A {
...
public Returntype2 f(Argtype2 x)...
}
This example of function subtyping Argtype2 → Returntype2 <: argtype1="">→ Return- type1 requires Returntype2 <> Returntype1 and Argtype1 <> Argtype2.
Suppose we keep the argument and return types the same, but vary the set of exceptions, as in the following code:
class A {
...
public Returntype f(Argtype x) throws Exception1, Exception2, . . .

}
class B extends A {
...
public Returntype f(Argtype x) throws Exception1, Exception2, . . .
}

(a) What relation between the two sets of exceptions is required for the subclass B to be a subtype of class A? Do the sets have to be the same? Or would it be alright for one to be a subset of the other? Explain brie?y. In this part, do not worry about subtyping of exception types - we are concerned with only the sets of types.

(b) Now suppose that we allow for the possibility that the exceptions in one set could be subtypes of exceptions in the other set. What is the relation we require for class B to be asubtype of class A?

Request for Solution File

Ask an Expert for Answer!!
JAVA Programming: In java a method that can throw an exception other than
Reference No:- TGS01269983

Expected delivery within 24 Hours