🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

Q&A

解決済

2回答

3086閲覧

コンパイルエラーが解決できません

mari1105murata

総合スコア7

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

0グッド

0クリップ

投稿2019/10/02 02:42

C:\work>javac Reiwazei.java
Reiwazei.java:41: エラー: 例外IOExceptionは対応するtry文の本体ではスローされません
}catch (IOException e) {
^
Reiwazei.java:20: エラー: 例外IOExceptionは報告されません。スローするには、捕捉または宣言する必要があります
String line = reader.readLine();
^
エラー2個

C:\work>```java
import java.io.*;

public class Reiwazei{
public static void main(String[] args){
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

System.out.println("好きなセットの番号を選んで下さい"); String line = reader.readLine(); int n = Integer.parseInt(line); try { System.out.println("どれが食べたいですか?"); System.out.println("1サンドイッチセット"); System.out.println("2チーズケーキと紅茶セット"); System.out.println("3チョコレートケーキと珈琲セット"); switch (n){ case 1: System.out.println("1飲み物は何にしますか?"); break; case 2: System.out.println("2紅茶にはミルクかレモンどちらがいいですか?"); break; default: System.out.println("3珈琲はホットかアイスどちらにしますか?"); break; } }catch (IOException e) { System.out.println(e); }catch(NumberFormatException e){ System.out.println("番号でオーダーしてください。"); } //System.out.println("セットの値段はこちらです"); //price[] = new int[] {1000,2000,3000}; //for(int i =0; i<3;i++){ //} //public static int reiwa(int i, int j) { //return (i*0.1); //}// reiwa消費税の計算メソッド //} }

}
コード

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

エラーメッセージのとおりです。

java

1import java.io.*; 2 3public class Reiwazei{ 4 public static void main(String[] args){ 5 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 6 7 System.out.println("好きなセットの番号を選んで下さい"); 8 String line = reader.readLine(); 9 int n = Integer.parseInt(line); 10 11 try { 12 System.out.println("どれが食べたいですか?"); 13 System.out.println("1サンドイッチセット"); 14 System.out.println("2チーズケーキと紅茶セット"); 15 System.out.println("3チョコレートケーキと珈琲セット"); 16 17 switch (n){ 18 case 1: 19 System.out.println("1飲み物は何にしますか?"); 20 break; 21 case 2: 22 System.out.println("2紅茶にはミルクかレモンどちらがいいですか?"); 23 break; 24 default: 25 System.out.println("3珈琲はホットかアイスどちらにしますか?"); 26 break; 27 } 28 }catch (IOException e) { 29 System.out.println(e); 30 }catch(NumberFormatException e){ 31 System.out.println("番号でオーダーしてください。"); 32 } 33 34 //System.out.println("セットの値段はこちらです"); 35 //price[] = new int[] {1000,2000,3000}; 36 //for(int i =0; i<3;i++){ 37 //} 38 39 //public static int reiwa(int i, int j) { 40 //return (i*0.1); 41 //} 42 // reiwa消費税の計算メソッド 43 44 //} 45 } 46}

以上の通り、tryのブロックの中身はSystem.out.printlnswitchによる分岐だけですが、どちらもIOExceptionを起こす処理ではないので、起き得ない検査例外をcatchするものとしてコンパイルエラーとなっています。

投稿2019/10/02 02:48

maisumakun

総合スコア145963

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mari1105murata

2019/10/02 02:54

早速回答くださってありがとうございます。 必要のないものという事でしょうか? 数字以外が入力されたときに出るつもりで記入したのですが、、、
maisumakun

2019/10/02 03:07

逆に、入力部分ではIOExceptionが発生していますが、どこでも対応していません。 おそらくtryの区切りが適当ではないと思われます。 (そして、入力後に選択肢を表示するなど、処理の流れとしても全体に色々おかしいです)
mari1105murata

2019/10/02 04:02

そうですか、もう一度確認してかきなおします。 ありがとうございます!!
guest

0

ベストアンサー

catchは、対応するtryブロックで発生した例外を捕捉するものです。今tryで囲っている部分でIOExceptionは発生し得ず、逆に発生する可能性のある

java

1 String line = reader.readLine();

がtryに入っていません。また、maisumakun
さんへのコメントにある「数字以外が入力されたとき」は、

java

1 int n = Integer.parseInt(line);

でNumberFormatExceptionが発生しますが、このコードもtryに入ってませんので何も出来ません。

投稿2019/10/02 03:09

編集2019/10/02 06:03
swordone

総合スコア20669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mari1105murata

2019/10/02 04:04

トライに入っていないことすらわかりませんでした。 2点とも確認します。 丁寧にコードも、ありがとうございます!
mari1105murata

2019/10/02 04:12

コードを提示していただいたお陰で私でもエラーが直せました。 お二人とものお陰なのですがベストアンサーを選ばせていただきました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問