On Fri, Aug 8, 2025, at 07:57, Mihail Liahimov wrote:
> Yeah, it seems to be problematic to use this syntax with finally blocks.
> Perhaps the optional catch block should be allowed only at the very end, but
> it sounds somehow doubtful.
>
> ср, 6 авг. 2025 г. в 16:52, Andreas Heigl <[email protected]>:
>> Hey Mihail
>>
>> Am 06.08.25 um 13:34 schrieb Mihail Liahimov:
>> > Hi!
>> >
>> > At the moment, I can suggest this syntax:
>> >
>> > try {
>> > // do something
>> > } catch (SomeIgnorableException) finally {
>> > // do something
>> > }
>> >
>> I find that ... challenging
>>
>> When reading the code I now have to go to the end of the line to
>> understand that the second
>>
>> // do something
>>
>> does not belong to the `try` but to the `finally`...
>>
>>
>> And
>>
>> try {
>> // break stuff
>> } catch (SomeIgnorableException)
>> finally {
>> // do something regardless
>> }
>>
>> seems boken due to the missing }
>>
>> But well....
>>
>> We just have to adapt to something like this:
>>
>> try {
>> // break stuff
>> }
>> catch (SomeIgnorableException)
>> catch (Some OtherIgnorableException)
>> finally {
>> // do something regardless
>> }
>>
>> --
>> ,,,
>> (o o)
>> +---------------------------------------------------------ooO-(_)-Ooo-+
>> | Andreas Heigl |
>> | mailto:[email protected] N 50°22'59.5" E 08°23'58" |
>> | https://andreas.heigl.org |
>> +---------------------------------------------------------------------+
>> | https://hei.gl/appointmentwithandreas |
>> +---------------------------------------------------------------------+
>> | GPG-Key: https://hei.gl/keyandreasheiglorg |
>> +---------------------------------------------------------------------+
What about instead of at the end, we do it at the beginning?
try ignore (SomeIgnorableException, OtherException) {
// break stuff
} catch(UnexpectedException) {
// fix stuff
} finally {
// do this anyway
}
Since ignore only can follow a try and any symbol other than a "{" is currently
an error, I don't think we don't need to reserve "ignore" as a keyword.
It appears to be relatively easy to scan/read as well.
— Rob