Agreed. Looks like this case was just overlooked. Abstract exception class
is quite an unusual thing but probably it will be more useful with sealed
classes.

With best regards,
Tagir Valeev.

On Fri, Sep 24, 2021 at 4:45 PM Remi Forax <fo...@univ-mlv.fr> wrote:

> ----- Original Message -----
> > From: "Zheka Kozlov" <orionllm...@gmail.com>
> > To: "amber-dev" <amber-...@openjdk.java.net>
> > Sent: Vendredi 24 Septembre 2021 10:30:54
> > Subject: Sealed Exception
>
> > Hi!
>
> CC amber-spec-experts
>
> >
> > Java 17 compiler forces me to insert an unreachable catch block for the
> > base Exception:
> >
> > public static void main(String[] args) {
> >    try {
> >        f();
> >    } catch (Ex1 e) {
> >        e.printStackTrace();
> >    } catch (Ex2 e) {
> >        e.printStackTrace();
> >    } catch (BaseEx e) {
> >        // Unreachable
> >    }
> > }
> >
> > private static void f() throws BaseEx {
> > }
> >
> > sealed abstract class BaseEx extends Exception permits Ex1, Ex2 {
> > }
> >
> > Otherwise it doesn't compile. Was this decision intentional?
>
> I don't think so, it's something we have overlooked.
>
> > If yes, why? If not, can we fix it? I see this as an unfortunate
> limitation.
>
> I agree, it should be fixed.
>
> >
> > With best regards, Zheka Kozlov.
>
> Regards,
> RĂ©mi
>
>

Reply via email to