Javaのプログラムについて教えて下さい

このQ&Aのポイント
  • Javaのプログラムについて詳しく教えてください。
  • プログラム内での例外処理について教えてください。
  • コマンドライン引数に応じて例外メッセージを出力するプログラムについて教えてください。
回答を見る
  • ベストアンサー

Javaのプログラムについて教えて下さい

//Sample.java class Sample void methodA(int temp) if(temp == 0) String str = new String("Exception"); Integer.parseInt(str); else if(temp == 1) int[] array = new int[temp]; else Exception exc = new Exception(); throw exc; //SampleMain.java class ExceptionMain public static void main(string[] args) Sample sam = new Sample(); Int temp = Integer.parseInt(args[0]); Sam.method(temp); } } このプログラムの場合、ExceptionMainに新たにコードを加えて、コマンドライン引数が0,1,その他の場合に例外メッセージを出力するプログラムを教えて下さい。

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.1

class Sample { void method (int temp) throws Exception { if (temp == 0) { String str = new String("Exception"); Integer.parseInt(str); } else if (temp == 1) { int[] array = new int[temp]; } else { Exception exc = new Exception(); throw exc; } } } class ExceptionMain { public static void main(String[] args) { Sample sam = new Sample(); int temp = Integer.parseInt(args[0]); try { sam.method(temp); } catch (NumberFormatException e) { System.out.println("引数が0\n" + e); } catch (Exception e) { System.out.println("引数が0,1以外の数\n" + e); } } }

wiredrikou
質問者

お礼

丁寧にコードを書いていただきありがとうございました。

関連するQ&A

  • 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のプログラムについて至急教えてください!

    //Sub.java class Super{ public void A(){} } class Sub extends Super{ /* (1) */ } このプログラムの(1)に入るものを下から2つ選んで他のクラスのメインメソッドから呼び出すのですがどうやってもわかりません。わかる方教えてください! public void A(){} public String A(){ return "pool";} public int A(String str){return Integer.parseInt(st);} public int A(){return 3;} public Object A(){return new Object();}

    • ベストアンサー
    • Java
  • Integerについて

    class Sample5_7_Integer { /** * Integerクラスのメソッド */ public static void main(String[] args) { //String → int int i1 = Integer.parseInt(args[0]); //int型にすることにより計算可能 System.out.println(i1 + 100); //String → integer Integer i2 = Integer.valueOf(args[0]); System.out.println(i2); Integer i3 = new Integer(100); System.out.println(i2.equals(i3)); } } をEclipseで実行したところ、 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at benkyou.Sample5_7_Integer.main(Sample5_7_Integer.java:10) というエラーになってしまいます。 どなたか解決法をお願いします。

    • ベストアンサー
    • Java
  • 以下のJAVAプログラムでご質問です。

    import java.util.*; import java.io.*; import java.text.*; public class JTest9 { public static void main(String[] args) throws IOException { System.out.println("基準となる年月日を入力して下さい。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); String str2 = br.readLine(); String str3 = br.readLine(); int year = Integer.parseInt(str1); int month = Integer.parseInt(str2); int day = Integer.parseInt(str3); String targetDateText = year + "/" + month + "/" + day; int addDate = 10; SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); Date targetDate = sdf.parse(targetDateText); Calendar cal = Calendar.getInstance(); cal.setTime(targetDate); cal.add(Calendar.DATE,addDate); System.out.println(sdf.format(cal.getTime())); } } 上記は、コンソールから、年、月、日 を入力し、その入力した日付から10日後の日付を 出力しようとしているプログラムです。 しかし、17行目のsdf.parse(targetDateText);において、コンソール上に下記エラーが出ます。 Exception in thread "main" java.lang.Error: Unresolved compilation problem: 処理されない例外の型 ParseException このエラーを解決したいのですが、どのように修正すればよいのでしょうか。 ご助言の程、よろしくお願い致します。

    • ベストアンサー
    • Java
  • 構文がエラーになる

    Exception in thread"main"java.lang.NoClassDefFoundError という文章でエラーになります。 import java.io.*; class Sample34 { public static void main (String args[])throws IOException { System.out.println("整数を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int res = Integer.parseInt(str); if(res == 1){ System.out.println("1が入力されました。"); } else if(res == 2){ System.out.println("2が入力されました。"); } else{ System.out.println("1か2を入力してください。"); } } }

  • 今勉強中の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のプログラムについて教えてください!

    //Sub.java package prac; class Super{ public void A(){ String address = new String("Osaka"); System.out.println(address); } } public class Sub extends Super{ public void A(){ String address = new String("Kyoto"); System.out.println(address); } public int A(String tmp){ return Integer.parseInt(tmp); } } このプログラムを他のクラスのmain関数から呼び出す場合どのようなコードになりますか?また、間違えているところがあれば合わせて教えてください。

    • ベストアンサー
    • Java
  • Javaのプログラムで・・・

    Javaのプログラムで1~20までの整数乱数を実行後に指定回数だけ発生させ、そのうち何%が奇数であったかを表示するプログラムを作成中です。 乱数を発生させるところまでは行ったのですがここからどのように計算していくのかわかりません。 以下が作成したものですがアドバイスお願いします。 import java.io.*; public class Rand { public static void main(String args[]) throws IOException { System.out.print("発生させる乱数の回数は?"); BufferedReader br= new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int num= Integer.parseInt(str); for(int i=1;i<=num;i++){ int a=(int)(20*Math.random()+1); System.out.println(a); } for(int a=1; a<=;a++){ if(a%2==1); System.out.println("発生した乱数の"++"%が奇数です。"); } } }

  • プログラムの組み合わせ方

    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
  • intではなくStringで・・・

    こんなソースがあります。。 public class Check { public static void main(String[] args) { int i = Integer.parseInt(args[0]); if (i == 123) { System.out.println("あたり!"); } else if (i < 123) { System.out.println("はずれ!"); } else { System.out.println("おおはずれ!"); } } } これを、int型の文字を入力して判定させるのではなく、String型の文字で判定させたいのですが、 int i = Integer.parseInt(args[0]);をどう変えればいけるでしょうか? よろしくお願いします!

    • ベストアンサー
    • Java

専門家に質問してみよう