最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

How javascript try...catch statement works - Stack Overflow

programmeradmin0浏览0评论

I am trying to test in browsermob if certain input field work or not. I am attempting to use a try...catch statement which I have never used before. I know that the form is:

try {
//some code
} catch (){
//some error code
};

What exactly is supposed to be put in the parenthesis after the catch statement? When I try to use the statement it runs everything through the catch statement no matter if it is not an error. What am I doing wrong?

I am trying to test in browsermob if certain input field work or not. I am attempting to use a try...catch statement which I have never used before. I know that the form is:

try {
//some code
} catch (){
//some error code
};

What exactly is supposed to be put in the parenthesis after the catch statement? When I try to use the statement it runs everything through the catch statement no matter if it is not an error. What am I doing wrong?

Share Improve this question asked Aug 14, 2010 at 17:55 chromedudechromedude 4,30216 gold badges69 silver badges96 bronze badges
Add a comment  | 

5 Answers 5

Reset to default 10

See the “try...catch statement” guide on MDN.

In short, try/catch is used to handle exceptions (which are "thrown" using the throw statement). The syntax for try/catch is:

try {
    // Code
} catch (varName) {              // Optional
    // If exception thrown in try block,
    // execute this block
} finally {                      // Optional
    // Execute this block after
    // try or after catch clause
    // (i.e. this is *always* called)
}

varName is available to the scope of the catch block only. It refers to the exception object which was thrown (which could be any type of object, e.g. a String, but is usually an Error object).

The try catch statement is used to detected for exceptions/errors that are raised inside the try-block. In the catch block you can then react on this exceptional behavior and try to resolve it or get to a safe state.

You got the statement almost right:

try {
 // code that may fail with error/exception
} catch (e) { // e represents the exception/error object
 // react
}

Consider the following examples:

try {
  var x = parseInt("xxx");
  if(isNaN(x)){
    throw new Error("Not a number");
  }
} catch (e) { // e represents the exception/error object
 alert(e);
}

try {
 // some code
 if(!condition){
   throw new Error("Something went wrong!");
 }
} catch (e) { // e represents the exception/error object
 alert(e);
}

the stuff inside try {...} is what you want to execute. The stuff in catch() { ... } is what you want to execute if you get any javascript errors from anything executed in the try {...}

catch {...} only executes if there is a javascript error in the try {...} block. You can find out what the error is by doing for example this:

try {
 // do something 
} catch (err) {
  alert(err);
}

According to ECMAScript specifications,

try {
    // Code
} catch (varName) {  // optional if 'finally' block is present.
  if (condition) {   // eg. (varName instanceof URIError)
    // Condition (Type) specific error handling
  }
  else {
    // Generic error handling
  }
} finally {          // Optional if 'catch' block is present.
    // Execute this block after
    // try or after catch clause
    // (i.e. this is *always* called)
}

the code that is likely to throw an exception goes into try { }, The code to be run when an exception is thrown, comes into catch() { }. In catch() you can specify which exceptions you want to catch, and in which automatic variables to put it. finally { } is always run, regardless whether exception was thrown or not.

发布评论

评论列表(0)

  1. 暂无评论