例外処理するソースコードについて質問があります。
まず例外処理される前のファイルのソースコードを見てください。
public class JTest13 {
public static void main(String[] args) {
System.out.println("実行開始");
long lngTmp;
//以下を実行した瞬間に引数が無いか、整数に直せなかったら例外がスローされる
lngTmp = Long.parseLong(args[0]);
//割り算を実行する(小数点以下の数値を管理する必要がある)ため、double型に変換します
System.out.println(Double.parseDouble(args[0]) / 2);
System.out.println("tryブロック終了");
System.out.println("実行終了");
}
}
ここでアルファベットを入力すると、
実行開始
Exception in thread "main" java.lang.NumberFormatException: For input string: "a"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Long.parseLong(Unknown Source)
at java.lang.Long.parseLong(Unknown Source)
at JTest13.main(JTest13.java:20)
これで例外処理クラスがNumberFormatExceptionだと分かるんですが、
こういう結果がでなければいけません。
実行開始
例外:java.lang.NumberFormatException For input stirng:"a"
引数を整数で入力して下さい。
実行終了
これで問題なのがmainメソッドで例外処理するのではなく、整数チェック用のメソッド内でエラー処理するプログラムを作らなければならない事です。
変数がargs[0]なのでどうやってメソッドを作っていいのか分かりません。
ヒントだけでいいので、どうぞ宜しくお願い致します。
No.3
- 回答日時:
質問したいことがよくわからないな。
static void checkNumber(String in){
のようなメソッド作ってExceptionをキャッチして出力
mainでは
checkNumber(args[0]);
みたいに呼び出せば?
(メソッド名、メソッド型は適宜変更してくれ)
レスを頂き、ありがとうございます。
自分には少し難しいんですが、このメソッドはlong型に変換した後に作るべきでしょうか。
何か検討外れ名事を言っているようで恥ずかしいんですが、例外処理メソッドcheckNumber(String str)の後は全て出力なので後はdouble型に変換されて、終わりと言うことですかね。
頑張って作ってみますね。
No.2
- 回答日時:
> 変数がargs[0]なのでどうやってメソッドを作っていいのか分かりません。
argsの型はわかるが、args[0]の型はわからない。ということでしょうか?
もしそうでしたら、以下の回答を参考にしてください。
---
argsはString型の配列なので、args[0]はString型です。
ですので、String型の引数を持つメソッドを作ればOKです。
---
見当違いだったらすみません。
レスを頂き、ありがとうございます。
String型のメソッドを作るという事はreturnでString型を返すんですよね。
整数を入れるプログラムですから一度整数型を含む実数型の変数に変換してもう一度String型に戻せばいいのですかね。
ちょっと試してみますね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- Java Java 配列<選挙> 4 2023/07/31 15:07
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
onClickで関数呼出し後に、結果...
-
final修飾子を使っているのに、...
-
Labelコントロールに数字を代入...
-
mainメソッドのthrows節で設定...
-
【sendkeysメソッドが動かずに...
-
コマンドプロンプト実行後に画...
-
javascriptからjavaを呼び出したい
-
エクセルVBAにおけるON TIMEメ...
-
VBPをダブルクリックするとたま...
-
boolean型のフィールドとゲッタ...
-
エクセルのマクロでプリンタを...
-
CALLされていないメソッドを見...
-
Excel VBA でExcelを終了したい...
-
Refreshメソッドの使い方
-
JSPで<SELECT>の中にDBから持っ...
-
リストボックスの項目削除
-
ExcelのxlDialogInsertPictureで。
-
アクセスのレポートで円を描きたい
-
java 次の機能を有するメソッド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
Labelコントロールに数字を代入...
-
final修飾子を使っているのに、...
-
エクセルVBAにおけるON TIMEメ...
-
コマンドプロンプト実行後に画...
-
mainメソッドのthrows節で設定...
-
DataGridViewでセルクリックイ...
-
javascriptからjavaを呼び出したい
-
VBPをダブルクリックするとたま...
-
onClickで関数呼出し後に、結果...
-
ExcelのxlDialogInsertPictureで。
-
Refreshメソッドの使い方
-
JSPで<SELECT>の中にDBから持っ...
-
【sendkeysメソッドが動かずに...
-
ウィンドウを最前面にできません
-
(String args[])というメッソ...
-
C# 演算 最大値 最小値 表現の仕方
-
Excel VBA シェイプの原型のサ...
-
VB.netで、シリアル通信のタイ...
-
Excel VBA でExcelを終了したい...
おすすめ情報