タグ付けされた質問 「throw」

8
`throw new Error`と` throw someObject`の違いは何ですか?
コードのインスタンスでわざとスローされたカスタムエラーをキャッチする一般的なエラーハンドラーを作成したいと思います。 throw new Error('sample')次のコードで気に入ったとき try { throw new Error({'hehe':'haha'}); // throw new Error('hehe'); } catch(e) { alert(e); console.log(e); } ログがFirefoxに表示されError: [object Object]、オブジェクトを解析できませんでした。 2番目throwのログは次のように表示されます。Error: hehe 私がしたとき try { throw ({'hehe':'haha'}); } catch(e) { alert(e); console.log(e); } コンソールは次のように表示されました:Object { hehe="haha"}エラープロパティにアクセスできました。 違いはなんですか? コードに見られる違いはありますか?同様に文字列は文字列として渡され、オブジェクトはオブジェクトとして渡されますが、構文は異なりますか? エラーオブジェクトのスローについては調べていません...文字列のスローのみを実行していました。 上記の2つの方法以外に方法はありますか?

6
なぜPromise.catchハンドラー内にスローできないのですか?
なぜErrorcatchコールバックの内部をスローして、他のスコープにあるかのようにプロセスにエラーを処理させないのはなぜですか? console.log(err)何もしなければ、何も出力されず、何が起こったのかわかりません。プロセスは終了しました... 例: function do1() { return new Promise(function(resolve, reject) { throw new Error('do1'); setTimeout(resolve, 1000) }); } function do2() { return new Promise(function(resolve, reject) { setTimeout(function() { reject(new Error('do2')); }, 1000) }); } do1().then(do2).catch(function(err) { //console.log(err.stack); // This is the only way to see the stack throw err; // …

14
C ++で例外指定子を使用する必要がありますか?
C ++では、例外指定子を使用して、関数が例外をスローする場合とスローしない場合があることを指定できます。例えば: void foo() throw(); // guaranteed not to throw an exception void bar() throw(int); // may throw an exception of type int void baz() throw(...); // may throw an exception of some unspecified type 次の理由により、実際にそれらを使用することに疑問があります。 コンパイラーは、厳密には例外指定子を強制しません。そのため、利点は大きくありません。理想的には、コンパイルエラーが発生するようにします。 関数が例外指定子に違反している場合、標準的な動作はプログラムを終了することだと思います。 VS.Netでは、throw(X)をthrow(...)として扱うため、標準への準拠は強くありません。 例外指定子を使用する必要があると思いますか? 「はい」または「いいえ」で答え、答えを正当化するいくつかの理由を提供してください。

4
C ++では、throwが式の場合、その型は何ですか?
私は簡単な進路の1つでこれを拾い、redditしました: http://www.smallshire.org.uk/sufficientlysmall/2009/07/31/in-c-throw-is-an-expression/ 基本的に、著者はC ++では次のように指摘しています。 throw "error" 式です。これは実際には、C ++標準では、本文と文法の両方でかなり明確に記述されています。しかし、(少なくとも私にとって)明確ではないのは、表現のタイプは何ですか?「void」と思ったのですが、g ++ 4.4.0とコモーで少し実験すると、次のコードが生成されました。 void f() { } struct S {}; int main() { int x = 1; const char * p1 = x == 1 ? "foo" : throw S(); // 1 const char * p2 = x == 1 ? "foo" : …
115 c++  throw 

7
C ++で例外が(舞台裏で)機能する方法
例外は遅いと人々が言っ​​ているのを見続けていますが、証拠はありません。それで、それらがそうであるかどうかを尋ねるのではなく、例外が舞台裏でどのように機能するかを尋ねるので、それらをいつ使用するか、そしてそれらが遅いかどうかの決定をすることができます。 私の知っている限りでは、例外は、何度もリターンを行うのと同じですが、各リターンの後に、別のリターンを行う必要があるか、停止する必要があるかどうかもチェックします。戻るのをいつ停止するかをどのように確認しますか?例外のタイプとスタックの場所を保持する2番目のスタックがあると思います。その後、そこに到達するまで戻ります。また、この2番目のスタックがタッチされるのは、スローと各トライ/キャッチ時だけだと思います。AFAICTが戻りコードを使用して同様の動作を実装すると、同じ時間がかかります。しかし、これはすべて推測にすぎないので、実際に何が起こっているのかを知りたいのです。 例外は実際にはどのように機能しますか?

3
C ++ 03 throw()指定子C ++ 11 noexceptの違い
実行時とコンパイル時にそれぞれチェックされることthrow()とnoexceptそれ以外に違いはありますか? このWikipedia C ++ 11の記事は、C ++ 03スロー指定子が非推奨であることを示唆しています。 なぜそうnoexceptなのか、コンパイル時にそれらすべてをカバーするのに十分な能力があるのですか? [注:この質問とこの記事を確認しましたが、サポート終了の明確な理由を判断できませんでした。]
100 c++  exception  c++11  throw  noexcept 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.