Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

on a javascript error, how to identify method or js file with the problem?

When a javascript error occures in IE (or in other browsers) you get a popup saying that javascript error has occurred - usually this comes with a line number and some hint. Sometimes it comes with line 0 and with no way of knowing what the problem is.

Javscript can come from HTML itself, from a js file or from JSP (and more). Microsoft has a script debugger that helps a lot in finding where js errors are, however sometimes when a js error occurs the script debugger cannot find the code portion and thus its difficult of finding where is the root cause of the problem.

My question is whether anyone knows any way of making script debugger find the code any way (mostly happen with js code that is in JSP file), or at least include in the IE popup the method or js file where the error has occurred. (it only display the line number, and many times its line 0...).

Thanks, Tal.

like image 384
Tal Avatar asked Jun 09 '09 11:06

Tal


People also ask

Where is the recommended place to look for JavaScript errors?

In the top right of DevTools, the Open Console to view errors button displays an error about the webpage. Click the Open Console to view errors button on the top right.

Which JavaScript function is used for finding errors?

JavaScript try and catch The try statement allows you to define a block of code to be tested for errors while it is being executed. The catch statement allows you to define a block of code to be executed, if an error occurs in the try block.


1 Answers

The error object which is created when an error is thrown by JavaScript is very unreliable when it comes to the source line, especially within IE. Browsers like Firefox and Safari are better at line numbers, but they are generally pointless due to minification of the files.

What is obviously of more use is getting the call stack, but due to the anonymous nature of JavaScript functions (well, that they can be anonymous) a call stack can often be hard to work out.

If you're doing a try/ catch you can do arguments.callee which will return you the method which called the current method which failed.

Here's a good example of doing a complete stack in JavaScript - http://eriwen.com/javascript/js-stack-trace/

like image 163
Aaron Powell Avatar answered Nov 09 '22 12:11

Aaron Powell