Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I use a try/catch in JavaScript without specifying the catch argument/identifier?

People also ask

Can I use try without catch in JavaScript?

A try without a catch clause sends its error to the next higher catch, or the window, if there is no catch defined within that try. If you do not have a catch, a try expression requires a finally clause.

Can we use catch () without passing arguments in it?

Some exception can not be catch(Exception) catched. Below excecption in mono on linux, should catch without parameter. Otherwise runtime will ignore catch(Exception) statment.

Can you do try without catch?

Yes, It is possible to have a try block without a catch block by using a final block. As we know, a final block will always execute even there is an exception occurred in a try block, except System. exit() it will execute always.

Can I use try catch inside try catch JavaScript?

You can nest one or more try statements. If an inner try statement does not have a catch -block, the enclosing try statement's catch -block is used instead. You can also use the try statement to handle JavaScript exceptions.


Optional catch binding in 2019

Node.js

In Node.js, this feature is called Optional Catch Binding and is supported since Node.js version 10.3, see https://node.green.

Typescript

In Typescript, this is allowed since version 2.5.

Browser support

  • Chrome: since 68
  • Firefox: since 58
  • Edge, IE, Safari: no support for now

Standard

The proposal is currently Stage 4, meaning that its implementation is finished and it is guaranteed to be included into the next version of the ECMAScript standard.

So this is a perfectly legitimate syntax now according to the standard if you are using Node.js or transpiling your browser code using Babel:

try {

} catch {
  // No need for the `(error)` after `catch`!
}

This is an outdated answer. It no longer applies to the current version of JavaScript. See other answers for details.


You just can't. The spec says that there must always be an identifier inside parens after catch.


The specification gives the grammar for a catch block:

Catch :

  catch ( Identifier ) Block

And goes on to state that:

When a catch clause catches an exception, its Identifier is bound to that exception

So it is a syntax error to omit the identifier from a catch block.


Simply omit the parenthese, like this:

try {
    // Code...
} catch {
    // Code...
}

Agreed, it's mandatory so that you can handle the error fully - even if you know what the error is likely to be. In truth, just prod in a variable name and don't use it within your catch routine :)