Sealed Exception

Tagir Valeev amaembo at gmail.com
Fri Sep 24 11:40:21 UTC 2021


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 <forax at univ-mlv.fr> wrote:

> ----- Original Message -----
> > From: "Zheka Kozlov" <orionllmain at gmail.com>
> > To: "amber-dev" <amber-dev at 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
>
>


More information about the amber-dev mailing list