質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.50%
Java

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

Q&A

解決済

2回答

471閲覧

例外処理について教えてください

yukina

総合スコア13

Java

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

0グッド

0クリップ

投稿2018/02/25 12:33

現在例外処理の問題を解いています。自分のできる範囲で解いてみたのですが
あっているのかわかりません。間違っている点、直した方がいい点等があればご指摘いただけると嬉しいです。
よろしくお願いします。

以下の説明をよんで、mainメソッドとhelメソッドを持つクラスを作成しなさい。
mainメソッド
1)キーボードで入力した文字列を引数にして、helメソッドを呼び出す
2)helメソッドが投げた例外処理を行う
3)例外処理はprintStackTraceメソッドを使用
helメソッド(引数String型 a)
4)引数aを表示するだけ
5)aがnullであればNullPointerExceptionを投げる
6)NullPointerExceptionのコンストラクタは引数に文字列nullをあてる
上記を以下のように修正
mainメソッド
7)キーボードで入力した文字列を引数にして、helメソッドを呼び出す
8)helメソッドが投げた例外処理を行う
helメソッド
9)引数aを表示するだけ
10)aがnullであれば、独自に作成したクラスArgumentExceptionを投げる
ArgumentExceptionクラス
11)独自例外クラス
12)継承だけでコンストラクタや処理の定義はしない

class ArgumentException extends Exception{
}

class Exec {

public void hel(String s) { try { if(s == null) { //throw new NullPointerException(); throw new ArgumentException(); } } catch(Exception e ) { } System.out.println(s); } public static void main(String[] args) throws IOException { // TODO 自動生成されたメソッド・スタブ Exec extc1 = new Exec(); BufferedReader br= new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); try { extc1.hel(str); } catch(Exception e){ //e.printStackTrace() ; } }

}

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

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

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

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

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

swordone

2018/02/25 12:37 編集

コードはマークダウンしてください。質問編集画面でコード部分を選択し、<code>というボタンを押し、「言語をここに入力」の部分を「java」に書き換えてください。
unz.hori

2018/02/25 14:01

質問の範囲が広すぎますね。例外処理だけであれば何々の例外処理について合っているかという具体的な質問でないと非常に回答者に負荷をかける質問になっています。
退会済みユーザー

退会済みユーザー

2018/02/25 22:13

進んだということは解決できてるはずなので過去の質問を解決済みにしましょう
退会済みユーザー

退会済みユーザー

2018/02/25 22:17

@unz.hori 前回も今回も書籍にある課題(同書籍内に答えのようなものはある)の採点だと思うぞ
guest

回答2

0

java

1import java.io.BufferedReader; 2import java.io.IOException; 3import java.io.InputStreamReader; 4 5@SuppressWarnings("serial") 6class ArgumentException extends Exception { 7} 8 9class Exec { 10 public void hel(String str) throws ArgumentException { 11 if (str == null) { 12 throw new ArgumentException(); 13 } 14 System.out.println(str); 15 } 16 17 public static void main(String[] args) { 18 try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) { 19 String str = br.readLine(); 20 // str = null; 21 new Exec().hel(str); 22 } catch (ArgumentException | IOException e) { 23 e.printStackTrace(); 24 } 25 } 26}

投稿2018/02/27 16:21

katoy

総合スコア22324

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

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

0

ベストアンサー

java

1class ArgumentException extends Exception{ 2} 3 4class Exec { 5 6 public void hel(String s) { 7 try { 8 if(s == null) { 9 //throw new NullPointerException(); 10 throw new ArgumentException(); 11 } 12 } catch(Exception e ) {} 13 System.out.println(s); 14 } 15 16 public static void main(String[] args) throws IOException { 17 // TODO 自動生成されたメソッド・スタブ 18 19 Exec extc1 = new Exec(); 20 21 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 22 String str = br.readLine(); 23 try { 24 extc1.hel(str); 25 }catch(Exception e){ 26 //e.printStackTrace() ; 27 } 28 } 29}

helメソッド内で例外処理してしまったら「mainメソッドでhelメソッドが投げた例外を処理する」ということができませんよ。

投稿2018/02/25 18:45

swordone

総合スコア20649

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問