* onerror 이벤트
예외를 처리하는 다른 방법 중에 하나인 onerror 이벤트를 살펴보겠다.
onerror 이벤트는 페이지에 스크립트 에러가 발생할 때 마다 호출 된다.
onerror 이벤트를 사용하기 위해서는, 반드시 에러를 다룰 함수를 만들어야한다.
그런 뒤 onerror 이벤트 핸들러로 해당 함수를 호출하면 된다.
이 때 불려지는 함수는 세 개의 인자를 가지게 된다.
- msg(에러 메시지)
- url(에러를 발생시킨 페이지의 url)
- line(몇 번째 행에서 에러가 발생했는지)
[문법]
onerror=handleErr
function handleErr(msg,url,l)
{
//Handle the error here
return true or false
}
onerror 에 의해 반환되는 값으로 브라우저에 표준 에러 메시지를 출력할지 말지 결정할 수 있다.
만약에 false를 반환하면 브라우저는 자바스크립트 콘솔에 표준 에러 메시지를 출력합니다.
하지만 만약 true를 반환한다면 브라우저는 표준 에러 메시지를 출력하지 않습니다.
[예제]
<html>
<head>
<script type="text/javascript">
onerror=handleErr
var txt=""
function handleErr(msg,url,l)
{
txt="There was an error on this page.\n\n"
txt+="Error: " + msg + "\n"
txt+="URL: " + url + "\n"
txt+="Line: " + l + "\n\n"
txt+="Click OK to continue.\n\n"
alert(txt)
return true
}
ddd
function message()
{
adddlert("Welcome guest!") // 에러...
}
</script>
</head>
<body>
<input type="button" value="View message" onclick="message()" />
</body>
</html>
에러가 발생하면 onerror 이벤트가 발생하고 거기에 정해준 콜백 메소드가 실행됩니다.
이 때 메시지를 직접 작성한 뒤 표준 에러 메시지를 출력하지 않고 handleErr() 함수에서 작성한 메시지를 보여줍니다.
[에러 보고로 사용자를 괴롭히지 않기]
window.onerror = function(){ return true; }
후기
위 예제를 이용하여 자바스크립트 에외처리를 하면 도움이 될것 같다.