2012-03-30 4 views
4

質問Javascriptを - トリガーエラー

は、カスタムJavaScriptのエラーメッセージをトリガする方法はありますか? Chromeでは、ブラウザにメッセージを送信するためにconsole.warn[error,log]が見つかりました。ただし、これはChrome(およびおそらくFirefox)でのみ機能します。しかし、この行自体はInternet Explorerでエラーを引き起こします。

私はJavascript関数のルールに違反するエラーをトリガできるようにしたいと考えています。たとえば、オブジェクトを値としてとる関数では、オブジェクトには「ダイアログ」という属性が必要です。その属性が存在しない場合は、「モーダルウィンドウ:ダイアログIDが指定されていません」というエラーメッセージが表示されます。

コンテキスト

私は、我々のアプリケーションのプログラマが簡単に均一性と信頼性になりますダイアログボックスを作成することができるように一緒に働くPHPクラスおよびJavaScriptクラスを構築しています。


サンプルコード

try { 
    if (!params || !params['dialog']) { 
     throw "NoDID"; 
    } 
} 
catch (error) { 
    if (error == "NoDID") { 
     //com.MySITE.js.warn("Modal Window: No dialog id specified."); 
     //Trigger custom error message here. 
    } 
} 

私は簡単な開発者のデバッグ用のJavaScriptウィンドウに移動するメッセージをしたいと思います。 「スロー」を実行すると、「キャッチされていないカスタムエラーメッセージ」が表示されます。私は、ユーザーがページ上の何かでこれを見ることを望んでいません。私はそれを開発者用のjsログで利用できるようにしたい。

答えて

3
if (console) console.warn(... 

(それともなどconsole.error、にconsole.log、console.traceを、使用することができます)。

console && console.warn(... 

をそれとも、あなたのコードの開始時に、どこでも、あなたはできるコンソールをチェック気に入らない場合は、実行します:別の方法として、あなたも行うことができ

window.console = console || {warn: function(){}}; 

換言すれば、ブラウザはコンソールを持っていないので、何もしない偽の "warn"メソッドで偽のものを作ります。これを行うと、ブラウザにコンソールがあるかどうかを気にせずに、コード全体でconsole.warnを実行できます。

さらに別のアプローチは、独自のメソッドを警告するために、次のようになります。

function warn(message) { 
    console && console.warn(message); 
} 

をして、あなただけ(「何かが間違っていた」)警告行うことができます。

もちろん、IEユーザーがいつユーザーを取得するかを実際に調べるには、自分の警告メッセージを作成する必要があります。これはサーバー上のどこかにAJAX要求を行う必要がありますどこかであなたに電子メールなどを送ります)。

+0

ああ、IEの場合、サーバー側の通知方法ではなく、Firebugライト(FirebugはFirefox JS開発拡張機能、FirebugライトはJSの純粋にJSで実装された種類のゲットーバージョンです。 Firefoxは必要ありません)。 – machineghost

+0

私はcom.mySite.jsのようなカスタムアプリケーション名でこれに似た実装を始めました。私はあなたのソリューションが法案に適合していると思います。 – teynon

8

使用throw

throw "Deliberate Error!"; 
+0

私は、開発者のデバッグを容易にするために、javascriptウィンドウにメッセージを表示したいと思います。 「スロー」を実行すると、「キャッチされていないカスタムエラーメッセージ」が表示されます。私は、ユーザーがページ上の何かでこれを見ることを望んでいません。私はそれを開発者用のjsログで利用できるようにしたい。 - 編集された質問のコードを参照してください。 – teynon