2014-05-23 5 views
4

프레임 워크에서 오류가 발생하거나 브라우저에서 오류가 발생하는 경우 기본적으로 어떤 종류의 런타임 오류. 프레임 워크를 수정하지 않고도이 프레임 워크가 만드는 콘솔 로그와 브라우저의 오류를 무시할 수 있습니까? 나는 자신의 프레임 워크를 자신의 오류 처리 시스템과 함께 사용하여 실제적으로 런타임 오류 (구문 오류가 아님)를 사용자에게 알리고 싶습니다. 자바 스크립트가 브라우저에서 실행되는 방법 때문에 런타임 오류로 분류 할 수 있을지 모르지만 잘하면 당신은 나를 잡을 것입니다.콘솔 로그를 무시할 수 있습니까?

모든 프레임 워크가 Javascript로 작성된 경우 가능합니까?

어떻게 이루어 집니까?

다른 브라우저간에 고려해야 할 사항은 무엇입니까?

감사

답변

0

당신은 console.log() 기능을 재정의하는 시도 할 수 있습니다.

//Save original reference 
var originalConsole = console; 
//Override 
console = {}; 
console.log = function() 
{ 
    //According to MDN the console.log function can receive a variable number of params 
    for(var i=0; i<arguments.length; i++) 
    { 
     //Make your changes here, then call the original console.log function 
     originalConsole.log("Change something: "+arguments[i]); 
    } 
    //Or maybe do something here after parsing all the arguments 
    //... 
} 

console.log("one", "two"); 

JSFiddle here.

+0

감동, 감사에서

. – user3561274

1

당신은 아마 try-catch block을 찾고 다음 try {} 사이의 코드가 오류를 수신 할 때마다

try { 
    alert(foo); 
} catch(e) { 
    alert('The code got the following error: '+e.message); 
} 

catch(e) {} 블록은 발생한 오류에 대한 오류 객체 인 인수 e으로 실행됩니다. 이 경우, 변수 foo가 정의되지 않으므로이 코드를 실행하면 "코드는 다음과 같은 오류가 발생했습니다 : 푸을 정의되지 않은"라는 경고 메시지가 표시됩니다

0

당신은을 작성하여 콘솔 로그를 덮어 쓸 수 있습니다 "콘솔"개체하고 .log로있어 재정의() 함수 : 일부 브라우저이 직접 window 객체에 추가 할 필요

var console = {}; 
console.log = function(){}; 

; 그래서, 브라우저 호환성을 위해, 또한 추가

window.console = console; 

또한, 다른 콘솔 기능을 대체 할 수 있습니다 (예를 들어 console.info, console.warn 및 console.error를) 너무 사람들을 사용하는 경우.

또한 콘솔 기능을 무시할 때 Udi Talias의 this blog post을 읽는 것이 좋습니다. 빠르고 읽기 좋습니다!

1

console.log을 오버 라이딩하지 않은 상태에서 window.onerror을 재정 의하여 동일한 효과를 얻을 수 있습니다. MDN documentation

window.onerror = function myErrorHandler(errorMsg, url, lineNumber) { 
    // Log the error here -- perhaps using an AJAX call 
} 
관련 문제