- ベストアンサー
例外処理throws
tyoufuの回答
- tyoufu
- ベストアンサー率28% (19/67)
最初のエラーは外部から使う方のエラーじゃなかったですか? Inputクラスのsetメソッドがエラーが発生した場合 IOExceptionが発生したら呼び出し側に戻るようになっているから、 呼び出す側に try - catch をしなければいけないと思います。 try{ Input input = new Input(); x1 = input.set("x座標を入力"); } catch(IOException e) { } みたいに。
関連するQ&A
- 例外処理の有無ついて
import java.io.*; class A{ public static void main(String args[]){ System.out.println("文字を入力"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); String stru = str.toUpperCase(); System.out.println("大文字変換すると" + stru); } } このまま実行すると例外処理をしなくてはいけません。 とエラーになり、 public static void main(String args[])throws IOException{ とすれば正常に動作するのですが、 ではどういうときに例外処理は必要になってくるのでしょうか? なにか決まりがあるのでしょうか?
- ベストアンサー
- Java
- 今勉強中のjavaで。わからないことがあります。
import java.io.*; class Ireru { public static void main(String args[]) throws IOException{ System.out.println("あなたは何歳ですか?"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); int num =Integer.parseInt(str1); System.out.println("あなたは" + num +"歳です。"); } } ------------------------------- import java.io.*; class Ireru { public static void main(String args[]) throws IOException{ System.out.println("あなたは何歳ですか?"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); System.out.println("あなたは" + str1 +"歳です。"); } } なぜ下では悪いのですか?なぜnum をつかないといけないかがわかりません。正確には str1とnumの違いがわからなくて困っています。何が混乱の原因ですか?
- ベストアンサー
- Java
- Java int sum = 0は必要ですか?
やさしいJavaという本を買ったのですが、良くわからない箇所がありました。 --------------省略----------------- class Sample6 { public static void main(String[] args) throws IOException { System.out.println("整数を3つ入力してください。") ; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)) ; String str1 = br.readLine() ; String str2 = br.readLine() ; String str3 = br.readLine() ; int sum = 0 ; sum += Integer.parseInt(str1) ; -------------------略----------------- int sum = 0 ; とありますが、0と設定しておく必要はありますか? 無いとまずいですか? いきなりこのコードが出てきたと思うのですが どこかに書いてましたっけ?
- ベストアンサー
- Java
- プログラムの組み合わせ方
java初心者です。 2つのプログラムを組み合わせて1つのプログラムにしたいんですが、イマイチ分かりません。 このプログラムと、 import java.io.*; class Hello2 { public static void main(String[] args) throws IOException { System.out.println("名前を入力してください"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); System.out.println(str + "さん、こんにちは!"); } } このプログラムを、 import java.io.*; class Sanbai{ public static void main(String[] args) throws IOException { System.out.println("好きな数を入力してください"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int x; x = Integer.parseInt(str); System.out.println("あなたの入力した数:" + x); System.out.println("その3倍の数:" + (x*3)); } } 組み合わせて1つのプログラムにするにはどうしたらいいですか?(>_<)
- ベストアンサー
- Java
- 例外処理の書き方がよく分かりません。
例外処理の書き方がよく分かりません。 普通に書くと↓の(2)のところでエラーが出てしまうと思うのですが、こういった場合の例外処理の書き方が分かりません。 (1)の前に、 if(s2.length == 1) return; を書けば、エラーにはならないと思います。しかし、try catchやthrowsするのが普通のような気がしており、書き方が分かりません。 String str = "inu,neko"; String str2 = "inu"; String[] s = str.split(","); String[] s2 = str2.split(","); s[1].length(); s2[1].length();//(1)
- ベストアンサー
- Java
- 標準入力をするメソッドを作り例外処理をそのメソッド内で行います
以下のソースでエラーが発生します 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("例外処理が無事終了"); } }
- ベストアンサー
- Java
- メソッドの分割(リファクタリング?)
指導教官からプログラム自体には問題はないが長すぎるのでメソッドを分割したほうがよいといわれました。以下に書きます(一部改変) try{ System.out.println("1. 2. どちらかを選択してください"); InputStreamReader reader = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(reader); String str = br.readLine(); int res = Integer.parseInt(str); if(!str.matches("[1-2]+")){ System.out.println("1、2から選択してください。"); continue;} if(res == 1){ System.out.println("キーワードを入力"); reader = new InputStreamReader(System.in); br = new BufferedReader(reader); str = br.readLine(); String sql = "SQL文"; ResultSet result = stmt.executeQuery(sql); //vectorにデータを格納 Vector vector1 = new Vector(); String[] array1 = new String[2]; while(result.next()){ array1[0] = result.getString("Res1"); array1[1] = result.getString("Res2"); vector1.addElement(array1); array1 = new String[2];} for(int i = 0;i < vector1.size();i++ ){ String Res1 = null; String Res2 = null; String[] str1 = (String[])vector1.get(i); Res1 = str1[0]; Res2 = str1[1]; System.out.println("Res1,Res2は" + Res1 + "\t" + Res2);}} if(res == 2){1と同様なので省略・・}} catch(IOException e){ System.out.println(e + "例外が発生しました");} }} メソッドの分割のコツはあるのでしょうか?お勧めの本はございますか? 長くてすいません。
- ベストアンサー
- Java
- throwsについて
こんにちは。 最近、JAVAの勉強を始めたのですがわからない点がありましたので質問に参りました。 こちらのページに http://msugai.fc2web.com/java/throws.html > コンパイル時に、スローされた例外が呼び出し元でキャッチされているかどうかチェックされます。 > キャッチされていなければ、コンパイルエラーになります。 とあったので試しに以下のようなコードを作りました。 class SampleException { public static void main(String[] args) { //try{ exMethod(); //} //catch(NumberFormatException e){} //catch(Exception e){} } private static void exMethod() throws NumberFormatException { String notnum = "非数値"; int suti = Integer.parseInt(notnum); } } (try~catchはコメントアウトしたまま) この説明の通りならコンパイルエラーが出るだろうと思ったのですが コンパイルしてみると成功してしまいました。 (throwsにExceptionを追加すればコンパイルエラーは出ます。) throws NumberFormatExceptionと記述しておけば このメソッド使うときはNumberFormatExceptionかExceptionの例外処理を 必ずしなくてはならないものだと思っていたのですが これは私の認識違いなのでしょうか? それともコードが何か間違えているのでしょうか? よろしくお願いします。
- 締切済み
- Java
- doubleで入力するには?
はじめまして。 Javaの勉強をはじめたばかりです。 質問のしかたが正しいのかもちょっと自信がないのですが、 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); っていうのがありますよね? これの『int』のところを『double』で入力できるように するにはどうすればいいのでしょうか? すごい初心者な質問で申し訳ないですが、よろしくお願いします。
- ベストアンサー
- Java
- Ctrl+Zが入力されると終了するプログラム
入力された文字をそのまま表示し、[Ctrl]+Zが入力されると終了するプログラムを組んでいるんですがどのように記述すればよいか困っています。アドバイスお願いします。 public static void main(String args[])throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str; do{ str = br.readLine(); System.out.println(str); }while(str == null); }
- ベストアンサー
- Java