Error-Type Specific try/catch Blocks

Joseph Groseclose jgrosecl49 at gmail.com
Fri May 13 17:49:55 UTC 2016


I offered a few syntaxes for this, perhaps the bitwise OR "|" would be
better.

On Fri, May 13, 2016 at 1:33 PM, Michał Wadas <michalwadas at gmail.com> wrote:

> > } catch (await FCL.load(...), await FCL.load(...)) (e) {
> Then you have to override comma operator (
> https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_Operator
> ) in one specific context...
>
> On Fri, May 13, 2016 at 7:14 PM, Joe Groseclose <jgrosecl49 at gmail.com>
> wrote:
>
>> @JoePea, that is one of the syntaxes I recommend in the proposal.
>>
>> @michalwadas The primary goal of this I think is to create a standard
>> feature, but I do not see why an expression wrapped in parenthesis
>> ultimately resulting in an error class would not be supported.
>>
>> Example:
>>
>> ...
>>
>> } catch (await FCL.load(...), await FCL.load(...)) (e) {
>> ...
>>
>> Or something similar for all of the other recommended syntaxes, replacing
>> the declared class instead with an expression (similar to class extension).
>>
>> Sent from my iPhone
>>
>> > On May 13, 2016, at 12:54 PM, /#!/JoePea <joe at trusktr.io> wrote:
>> >
>> > Perhaps a syntax based on modules:
>> >
>> > ```js
>> > try {}
>> > catch (TypeError as e) {}
>> >
>> > // ...
>> >
>> > try {}
>> > catch (MyError as err) {}
>> > ```
>> >
>> >> On Fri, May 13, 2016 at 9:43 AM, Michał Wadas <michalwadas at gmail.com>
>> wrote:
>> >> I can't see why would your syntax be superior to SpiderMonkey extension
>> >> except saving few characters.
>> >>
>> >> Can your syntax support code like this:
>> >>
>> >> async function foo() {
>> >>   try {
>> >>      throw new Error();
>> >>   } catch(e if isNativeException(e)) {
>> >>     // special handler for DOM exceptions
>> >>   } catch(e if e instanceof (await
>> >> fancyClassLoader.load('classes/SomeLibrary/UserDefinedError'))) {
>> >>      // load class asynchronously if it wasn't loaded
>> >>   }
>> >> }
>> >>
>> >> ?
>> >>
>> >>
>> >> On Fri, May 13, 2016 at 5:58 PM, Joseph Groseclose <
>> jgrosecl49 at gmail.com>
>> >> wrote:
>> >>>
>> >>> I've updated the proposal. See:
>> >>>
>> https://github.com/benderTheCrime/error-type-specific-catch-proposal#about-spidermonkey-implementation
>> >>>
>> >>> On Fri, May 13, 2016 at 11:49 AM, Joseph Groseclose <
>> jgrosecl49 at gmail.com>
>> >>> wrote:
>> >>>>
>> >>>> Nevertheless, perhaps the non-standard implementation could work
>> >>>> hand-in-hand with the proposal, where SpiderMonkey could support both
>> >>>> solutions in parallel for backward compatibility. I think that the
>> proposed
>> >>>> solution is more expressive.
>> >>>>
>> >>>> On Fri, May 13, 2016 at 11:26 AM, Claude Pache <
>> claude.pache at gmail.com>
>> >>>> wrote:
>> >>>>>
>> >>>>> Note that SpiderMonkey has already nonstandard conditional catch
>> >>>>> clauses:
>> >>>>>
>> >>>>> ```js
>> >>>>> try {
>> >>>>>    // ...
>> >>>>> }
>> >>>>> catch (e if e instanceof TypeError) {
>> >>>>>    // ....
>> >>>>> }
>> >>>>> ```
>> >>>>>
>> >>>>> —Claude
>> >>>>>
>> >>>>>
>> >>>>> Le 13 mai 2016 à 17:06, Joseph Groseclose <jgrosecl49 at gmail.com> a
>> écrit
>> >>>>> :
>> >>>>>
>> >>>>> I sent this proposal via
>> >>>>>
>> http://www.ecma-international.org/memento/contribute_TC39_Royalty_Free_Task_Group.php#
>> >>>>> yesterday evening. Sharing it here now:
>> >>>>>
>> https://github.com/benderTheCrime/error-type-specific-catch-proposal
>> >>>>>
>> >>>>>
>> >>>>> _______________________________________________
>> >>>>> es-discuss mailing list
>> >>>>> es-discuss at mozilla.org
>> >>>>> https://mail.mozilla.org/listinfo/es-discuss
>> >>>
>> >>>
>> >>> _______________________________________________
>> >>> es-discuss mailing list
>> >>> es-discuss at mozilla.org
>> >>> https://mail.mozilla.org/listinfo/es-discuss
>> >>
>> >>
>> >> _______________________________________________
>> >> es-discuss mailing list
>> >> es-discuss at mozilla.org
>> >> https://mail.mozilla.org/listinfo/es-discuss
>> >>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20160513/9fb3eac6/attachment.html>


More information about the es-discuss mailing list