[解決済み] 対応する try 文の本体で例外がスローされない。
2022-01-31 13:34:45
質問
Javaでの例外処理に問題があり、以下が私のコードです。この行を実行しようとすると、コンパイラーエラーが発生します。
throw new MojException("Bledne dane");
. エラーは
例外MojExceptionは、対応するtry文の本体で投げられることはありません。
以下はそのコードです。
public class Test {
public static void main(String[] args) throws MojException {
// TODO Auto-generated method stub
for(int i=1;i<args.length;i++){
try{
Integer.parseInt(args[i-1]);
}
catch(MojException e){
throw new MojException("Bledne dane");
}
try{
WierszTrojkataPascala a = new WierszTrojkataPascala(Integer.parseInt(args[0]));
System.out.println(args[i]+" : "+a.wspolczynnik(Integer.parseInt(args[i])));
}
catch(MojException e){
throw new MojException(args[i]+" "+e.getMessage());
}
}
}
}
そして、以下はMojExceptionのコードです。
public class MojException extends Exception{
MojException(String s){
super(s);
}
}
どなたか教えてください。
どのように解決するのですか?
try文の中のcatch-blockは、以下のものをキャッチする必要があります。
まさに
の中のコードが例外となる。
try {}
-ブロック
可
を投げる(またはその上位クラス)。
try {
//do something that throws ExceptionA, e.g.
throw new ExceptionA("I am Exception Alpha!");
}
catch(ExceptionA e) {
//do something to handle the exception, e.g.
System.out.println("Message: " + e.getMessage());
}
やろうとしていることは、こうです。
try {
throw new ExceptionB("I am Exception Bravo!");
}
catch(ExceptionA e) {
System.out.println("Message: " + e.getMessage());
}
これはコンパイラのエラーになります。なぜなら、決して起こらない例外をキャッチしようとしていることがJavaに分かってしまうからです。したがって、次のようになります。
exception ExceptionA is never thrown in body of corresponding try statement
.
関連
-
[解決済み】Javaパッケージが存在しないエラー
-
[解決済み】このコンパイルユニットは名前付きモジュールに関連しているため、名前付きパッケージeclipseを宣言する必要があります。
-
[解決済み】エラー。Selection does not contain a main type
-
[解決済み] java のクラス内のコンストラクタは、指定された型に適用できない
-
[解決済み】Mockitoでモックからチェックされた例外を投げる
-
[解決済み】intがnullであるかどうかを確認する方法
-
[解決済み] JUnit 4のテストで、ある例外が投げられたことをどのように断言しますか?
-
[解決済み】Exceptionを投げるとき、どの部分が高価なのですか?
-
[解決済み】再試行キャッチはどのように実装するのですか?
-
[解決済み] スレッドからExceptionをキャッチする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】リンクリストの負の値の数でnegativeCntrを代入する
-
[解決済み】HTTPステータス 405 - リクエストメソッド「POST」はサポートされていません (Spring MVC)
-
[解決済み] if / for / while 内で "Missing return statement" が発生する。
-
[解決済み】スレッド「main」での例外 java.lang.StringIndexOutOfBoundsException: 文字列のインデックスが範囲外です。0 [閉店]
-
[解決済み] 解決済み】Javaが「型をインスタンス化できない」というエラーを返す [重複] [重複]
-
[解決済み】メソッド本体がない、またはJavaで抽象的な宣言をする
-
[解決済み】純粋なJUnitテストにVisibleForTestingを使用する方法
-
[解決済み] Hide Utility Class Constructor : ユーティリティクラスはパブリックまたはデフォルトコンストラクタを持つべきではありません。
-
[解決済み】 executeQuery()でデータ操作文が発行できない。)
-
[解決済み] スレッドからExceptionをキャッチする方法