- ベストアンサー
標準入力をするメソッドを作り例外処理をそのメソッド内で行います
以下のソースでエラーが発生します return文は書いているのですが エラー内容は 「return 文が指定されていません」 と出ます。 return文はどこに置けばいいのでしょうか。 よろしくお願いします。 public static int getStdin(){ try{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); return (Integer.parseInt(br.readLine())); }catch(IOException e){ System.out.println("標準入出力でのエラー"); }catch(NumberFormatException e){ System.out.println("不正な入力が行われました"); }finally{ System.out.println("例外処理が無事終了"); } }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
例外をcatchした場合にreturnが実行されないからです。 たとえば、エラーなら-1を返すとか決めて、 returnを記述する必要があります。
その他の回答 (1)
- jch
- ベストアンサー率38% (7/18)
public static int getStdin(){ boolean bret = false; int ret = 0; try{ boolean ret = false; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ret = Integer.parseInt(br.readLine()); bret = true; }catch(IOException e){ System.out.println("標準入出力でのエラー"); }catch(NumberFormatException e){ System.out.println("不正な入力が行われました"); }finally{ System.out.println("例外処理が無事終了"); if(bret) return ret; else return -1; }