- 締切済み
例外処理についてご相談
Foxtrot_OWの回答
- Foxtrot_OW
- ベストアンサー率38% (19/49)
>Catch側でどのコンストラクタでExceptionが生成されたか、チェックする方法はありますでしょうか? そのようなことができる一般的な方法はありません。 >CatchしたExceptionのプロパティのNull確認をするしかありませんでしょうか・・。 それで区別できるなら、それでかまわないのではないでしょうか。 >Catch側で「Throwable e」を取り出そうとしたら「NullPointerException」が発生するような気がします。 sendException (String errId,String errMsg)で作ったオブジェクトのそのプロパティにアクセスした場合にNullPointerExceptionが投げられるか、それとも単にnullが返ってくるかはその仕様次第ですから、なんとも推測しようがありません。「気がします」でなく、とにかく当該クラスの仕様を確認してください。仕様が無かったり書かれていなければ、その例外クラスはもはや使い物になりませんね……。
関連するQ&A
- 例外処理がまったくわかりません!!
下のプログラミングについていくつか質問があります。 (1)etest()メソッドってなんですか? (2)存在しないファイルを開くってどういうことですか? (3)FileReader( )対応catch節、Close( )対応catch節ってなんですか? (4)あと、プログラミングあとの本の解説の部分がよくわかりません。抜粋してみます。 「一般的な例外クラスはxxxExceptionというクラス名をしています。このタイプの例外クラスはみな「Exception例外クラス」をスーパークラスにしています。この場合、「catch(Exception e)」を使うとすべてのxxxException例外を補足できるという仕様になっています。ですから下のetest( )メソッドは次のように、ひとつのcatch節で記述することができます。このようにしても表示される4エラーメッセージ(eで指示)は、正しく発生例外(FileNotFoundExceptionまたはIOException) 対応のものになります。」 public static void etest( ) { try { // try節を書く FileReader fr = new FileReader("xfile.txt"); } catch (FileNotFoundException e) { // FileReader( )対応catch節 System.out.println("例外1: " + e); // 例外情報を表示 return; // 戻る } catch (IOException e) { // Close( )対応catch節 System.out.println("例外2: " + e); // 例外情報を表示 return; // 戻る } System.out.println("ファイルは正しくオープンされました"); } } よろしくお願いします。
- ベストアンサー
- Java
- 例外処理を条件式として使っていいのですか?
Java初心者です。 以下の様にしているのですが、 for(int i = 0; i < 10; i++){ try { NullPointerException 例外が出る処理 } catch (NullPointerException e) { break; //e.printStackTrace();//例外をコンソールに表示させない。 } } は、以下のようなforを使うのとどのはどちらがいいのでしょうか。 条件式がたくさん必要な場合があり、catch したほうが楽なような気がします。 for(int i = 0; i < 10; i++){ if(例外が出る処理==null){ break; } } また、安全性はどうなのでしょうか。 根本で間違っているのではないかと思い不安で質問しております。 お詳しい方がおられましたら教えて下さいませんでしょうか。 よろしくお願い致します。
- ベストアンサー
- Java
- C++の例外処理
お世話になります。 現在C++でプログラミングを行っていますが、例外処理で困っています。 次のようなコードを書きました。 try{ m_Session.DestroyDatabasePool(); }catch(CException e){ m_Share.WriteLogFile("キャッチ中", LOG_INFO ); } しかし、これだとcatchが行われず、catch(CException e)部分を(...)にすると例外処理が実行されます。 例外の詳細を知りたいので、どうしても(CException e)で行いたいです。 説明が不十分かもしれませんが、何かご存知でしたら、ご教授お願いします。
- 締切済み
- C・C++・C#
- どの例外でcatchすればいいのですか?
例外の使い方を理解できていません。 さっき検索してみて下の質問と回答を見つけました。 例外処理がまったくわかりません!! http://www.okweb.ne.jp/kotaeru.php3?q=704380 この中の#2さんの回答、 > catch (FileNotFoundException e){ ・・・ } > catch (IOException e){ ・・・ } > などと分けて書かなくとも、 > catch (Exception e){ ・・・ } > と書けば、すべての例外を処理できます。 を読むと「それなら、どんな例外でもすべて"(Exception e)"でcatchすればいいじゃん」と思うのですが駄目ですか? もし駄目ならどんな基準でExceptionを選んでいるのですか? 例えば、下のような二分検索木への挿入メソッドの場合、 どこでどのような例外を使ってcatchすればいいのですか? 私の思うような例外を入れてみましたが、どんなエラーが出るかも分からないし…。 だからと言ってthrow ~ catchを入れないとJBuilderが怒るんですよね…。 public void insert(int el) { IntBSTNode p = root, prev = null; try { while (p != null) { prev = p; if (p.key < el) p = p.right; else p = p.left; } if (root == null) root = new IntBSTNode(el); else if (prev.key < el) prev.right = new IntBSTNode(el); else prev.left = new IntBSTNode(el); } catch (Exception x) { System.out.println("エラーだ! 何か表示"); } } 分かる方、説明をお願いします。
- ベストアンサー
- Java
- Javaの例外処理の書き方について
Javaの例外はErrorとRuntimeExceptionは書かなくてもいいが、 Exceptionはtryでcatchする必要があると聞きました。 しかし、java.langのStringを使っても例外処理は書きません。 なぜ、例外を書くやつと書かないやつがあるのですか? たとえば、java.langを使うとしたら、 ClassNotFoundException CloneNotSupportedException Exception の3つをjava.langを使うメソッドのブロックの上にtry文が必要だと思うのですが。
- ベストアンサー
- Java
- PHPの例外処理
PHPの例外処理について教えてください function test() { try{ $a = 10; $b = 0; $result = $a/$b; } catch(Exception $e){ //エラー処理 } } 上記でcatchが実行されるためにはどのようにすれば良いでしょうか?例えば if($b == 0) { throw new Exception('例外'); } を「$result = $a/$b;」の前に書いておくなどすればcatchされるのはわかりますが、 想定されるすべての例外のthrow処理を記載するなんてことはしたくありません。 実行してエラーだったら自動的にthrowされる、なんていうことはPHPでは無理でしょうか?
- ベストアンサー
- PHP
- 例外処理についてお願いします!!
下のプログラミングについていくつか質問があります。 (1) プログラムの冒頭に来るpublic static void main(String[] args)を今まで気にしていなかったのですが これはどういうことですか?これもメソッドのひとつなんですか?このプログラムではpublic static void main(String[] args)でメソッドを定義してそれをetest( )メソッドで開いているという感じでしょうか? それとetstってどこから来たのかわかります?作者が勝手につけた名前だそうですが。 (2)FileReader fr = new FileReader("xfile.txt"); のところがわかりません。これはどういう意味ですか? public static void main(String[] args) { public static void etst( ) { try { // try節を書く FileReader fr = new FileReader("xfile.txt"); } catch (FileNotFoundException e) { // FileReader( )対応catch節 System.out.println("例外1: " + e); // 例外情報を表示 return; // 戻る } catch (IOException e) { // Close( )対応catch節 System.out.println("例外2: " + e); // 例外情報を表示 return; // 戻る } System.out.println("ファイルは正しくオープンされました"); } } } よろしくお願いします!!
- ベストアンサー
- Java