an operator for ignoring any exceptions
Naveen Chawla
naveen.chwl at gmail.com
Wed Aug 2 06:30:36 UTC 2017
Yes I wouldn't remove the "catch" feature. However the idea of a "ternary"
like operator expression for `try` `catch` and `finally` might be
interesting, e.g.:
```javascript
const resp = try? JSON.parse(xhr.responseText) catch(e): 'Error:
'+e.message finally: console.log('done!');
```
On Wed, 2 Aug 2017 at 10:45 Frederick Stark <coagmano at gmail.com> wrote:
> Having recently inherited a codebase which silently consumes errors in
> many places (using try/catch, Promises that don't reject - just stall, and
> promise.catch noops), I can imagine these getting used terribly.
>
> At least with the current operators, there's an expectation in the syntax
> that you will handle the error, and you have to make the conscious decision
> to ignore the error. Introducing an operator that does it for you implies
> to novice programmers that it's an okay thing to do.
>
> The amount of extra code required to ignore the errors is not very
> onerous, and if you need it frequently, you can always put it in a wrapper
> function.
>
> --
> Fred Stark
> m: 0468 828 420 | e: coagmano at gmail.com
> id: keybase.io/coagmano | pgp: 43B91213.asc
> <https://keybase.io/coagmano/pgp_keys.asc?fingerprint=dab3030d5c21e5f34e17c98eba2b632843b91213>
>
> I acknowledge the Gadigal people of the Eora Nation, who are the
> traditional owners of the land on which I work and live.
>
> On 2 Aug 2017, 2:30 PM +1000, kai zhu <kaizhu256 at gmail.com>, wrote:
>
> -1
> in my real-world experience, JSON.parse and nodejs fs.readFileSync are the
> only 2 common use-cases that would benefit from this. its more practical
> to use helper-functions for those 2 use-cases rather than change the
> javascript language yet again (besides, returning an empty string is
> commonly more useful for me than returning undefined for failed
> fs.readFileSync).
>
> this is also a likely footgun that would get abused by novice programmers
> for many inappropriate use-cases.
> On Aug 2, 2017 11:59 AM, "Sheng TIAN" <llltgd at gmail.com> wrote:
>
>> Is there any proposal for an one unary operator for ignoring any
>> exceptions.
>>
>> (I have not search out any related threads. But it is useful IMO, so I'm
>> wondering if this had been discussed.)
>>
>> For example, we may introduce an unary operator called `try` which
>>
>> 1. calculate the operand first
>> 2. if it not throw, return as is
>> 3. otherwise return undefined
>>
>> This operator may be used when exceptions should always be ignored.
>>
>> Example:
>>
>> let resp;
>> try {
>> resp = JSON.parse(xhr.responseText);
>> } catch (_ignore) { /* do nothing here */ }
>>
>> may be simplified to:
>>
>> const resp = try JSON.parse(xhr.responseText);
>>
>> Another Example:
>>
>> var age = user && user.age;
>>
>> to:
>>
>> var age = try user.age;
>>
>> (Note, in such case, if operand is start with curly braces "{", it must
>> be wrapped in parentheses "()".)
>>
>> _______________________________________________
>> 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/20170802/5304fbd2/attachment-0001.html>
More information about the es-discuss
mailing list