「警告」例外のようなものはありません。オブジェクトをスローすると (そしてほとんど何でもスローできます)、それはキャッチされるかどうかのいずれかの例外です。
コードがコード内から発生する例外をインターセプトし、何らかの方法で (タイプまたはダックタイピングによって) 「警告」オブジェクトを探すことで、警告効果を達成できる可能性があります。
編集これは長年にわたっていくつかの反対票を集めてきたので、答えを拡大します. OPは明示的に「警告を出すことはできますか?」と尋ねました。「警告」コンストラクターがある場合、その答えは「はい」になる可能性があります。
function Warning(msg) {
this.msg = msg;
}
その後、あなたは確かに行うことができます
if (somethingIsWrong())
throw new Warning("Something is wrong!");
もちろん、それはうまくいきますが、それはそれほど違いはありません
if (somethingIsWrong())
throw "Something is wrong!";
何かをスローする場合、それらは何でもかまいませんが、スタック トレースが付属しているため、スローするのに役立つのは Error インスタンスです。いずれにせよ、ステートメントが存在するか存在しないかのどちらかですが、ブラウザー自体は、スローされたオブジェクトがインスタンスcatch
であることを気にしません。Warning
他の回答が指摘しているように、本当の目標がコンソール出力に影響を与えるだけであれば、それconsole.warn()
は正しいですが、もちろんそれは何かを投げることに匹敵するものではありません。それは単なるログメッセージです。実行は続行され、後続のコードが警告をトリガーした状況に対処できない場合でも、失敗します。