I thought exceptions imposed a bit more on the thrown type than the standard actually imposes.この混乱を解決したいと思います。これらのタイプに実際に課されるのは何ですか?例外に投げられた型に対して、標準はどのような要件を課していますか?
1
A
答えて
4
C++ ISO仕様、§ 15.1/3、スロー発現の
型がvoid以外、 不完全型、または不完全型へのポインタまたは参照であってはならないと述べています*、const void *、volatile void *、const volatile void *のいずれかです。これらの制限と15.3で述べた型マッチングの制限を除いて、throwのオペランドは、コール(5.2.2)またはreturn文のオペランドの関数引数として正確に扱われます。
これより、前方宣言したタイプを投げていない限り、好きなものを投げることができるようです。
EDIT:@Billy ONealが指摘するように、型はコピー可能である必要があります。つまり、コピーコンストラクタをサポートする必要があります。
関連する問題
- 1. 例外処理。どのようにしてイテレータを投げますか?
- 2. モックリクエスト例外がside_effectによって投げられないようにします
- 3. 要素に投げられた型エラー
- 4. Jestで投げられた例外の型をテストするには
- 5. 標準C++ライブラリにはどのような例外クラスがありますか
- 6. 投げられた価値に応じて、あなたはどのように物事をしますか?
- 7. ASP.net MVCルーティングは例外を例外として投げますか?
- 8. コードが標準に厳密に準拠していない場合、どうやってclangにエラーを投げることができますか?
- 9. サーブレットが例外を投げています例外
- 10. どのようにして標準で探しますか
- 11. 投げられるべき/投げられるべき例外
- 12. ユーザー入力エラー、投げられない例外またはtry {} catch {}を使用しています
- 13. Antは属性名にどのような要件を課していますか?
- 14. 予期しないnull値にはどのような例外を投げるべきですか?
- 15. Restfullサービスorg.netbeans.rest.application.config.ApplicationConfig例外が投げられました
- 16. webappに例外を格納していますか?カスタム例外を作成し、投げるために、以下に示すよう
- 17. 例外を投げたものを特定しますか?
- 18. 未知の列挙型の値に対してどのような例外を発生させますか?
- 19. Python:この例では正しいユースケースを例外として投げていますか?
- 20. 例外をスローして特定の例外を投げることの違いは、NullPointerExceptionなど
- 21. サポートされていない/実装されていない操作に対してJavaでスローする標準の例外は何ですか?
- 22. サーブレットのHTTPステータス500 - Servlet.init()を取得しています。HelloWorld例外が投げられました。
- 23. SystemJSはどのような標準を実装していますか?
- 24. ファイルに標準入力して標準出力に標準出力するにはどうしたらいいですか?
- 25. これはどの例外を投げるべきですか?
- 26. Powershell:新しい例外を作成して投げる
- 27. Laravelは試してみると例外イベントを投げています
- 28. 例外ロギング投げる私は、エンティティフレームワークを使用してのSQLServer 2012データベースに例外を記録しようとしています
- 29. 列挙に例外を投げずに複数の要素が含まれているかどうかを確認しますか?
- 30. 無効な入力に対して例外を追加するにはどうすればよいですか?
とにかくコピーコンストラクタが必要だと思います。15.1段落3 '例外オブジェクトと呼ばれる一時オブジェクトを初期化します.' –
@Billy ONeal-それを指摘してくれてありがとう!私は私の答えを更新します。 – templatetypedef