下に抜粋した本の解説の部分がわかりません。「呼び出し側」ってなんですか?
--------------------------------------------------
このプログラムのetst( )メソッドでは、スロー宣言「throws FileNotFoundException」が行われます。
記述(1)でエラーが発生したら、その情報を呼び出し側に送り、そこでetst( )の処理は終わりになるため、記述(2)は実行されません。記述(1)でエラーが発生しなかった場合は、記述(2)が実行されます。
import java.io.*;
public class JcReig3 { // JcReig3.java [java]
public static void main(String args[]) {
try {
etst();
}
catch (FileNotFoundException e) { // 呼び出し側でcatch節を書く
System.out.println("例外発生: " + e);
}
}
// こちらはthrows宣言を書く
public static void etst() throws FileNotFoundException {
FileReader fr = new FileReader("xfile.txt"); // (1)
System.out.println("正しくオープンされました"); // (2)
}
}
No.1ベストアンサー
- 回答日時:
public static void main(String args[]) {
try {
etst(); <-----------ここのことです。
}
catch (FileNotFoundException e) { // 呼び出し側でcatch節を書く
System.out.println("例外発生: " + e);
}
}
mainメソッドのなかでetstメソッドを呼んでいます。
etstメソッドは処理を正常に終了するまえに例外を投げます。(この場合FileNotFoundException )
この例外が上がると呼び出し元(この場合mainメソッド)に処理が返されます。
正確にはmainメソッドのcatch節まですっとびます。
No.2
- 回答日時:
初心者に見えるので、言葉を選んで書きます。
etestはメソッドです。
メソッドには、定義する部分と、
メソッドを使うところがあります。
一般的にメソッドを使うことをメソッドを呼び出すと
いいます。
メソッドの呼び出し側といえば、
簡単にいえば、
メソッドを呼び出している場所のことです。
メソッドの定義の中にはメソッドが呼び出された時
に、処理される内容が記述されています。
そのメソッドの定義部分に書いてある
処理内容を実行したい場所で、
メソッドを呼び出すと、あらかじめメソッドに定義された
内容の処理をしてくれて、終わったら、
呼び出した、場所の直後から、処理が進みます。
メソッドの定義部分の最初の
{}の前に記載されている。
public static void etst() throws FileNotFoundException
の部分を
メソッドの宣言部分といったり、
メソッドのヘッダーといったり、
します。
そこには、外部のメソッドを使う側
つまり、呼び出し側に対して、
どんな呼び出し方をしたらいいかについての
構文情報が記載されています。
publicという文言をprivate などの文言に
かえることによって、ある特定の人しか、
呼び出せないようにすることも可能です。
このように、ここに記載された文言によって、
呼び出し側は、呼び出し方がある程度きまって
しまいます。
ここに、throwsというキーワードが
ありますが、これはこの後に続く、
FileNotFoundExceptionという例外クラスを
このメソッドが投げる可能性があるといっています。
例外クラスってなに?とか
投げるってなに?とか
いろいろ、疑問があるでしょうが・・。
とりあえず、がまんしてそういうもんだとおもって
ください。
呼び出し側ってなんですか?
って聞いてるレベルで、質問されても説明の
しようがありません。
そして、このthrowsの後ろがもし、
チェックされる例外の時は
呼び出し側では、
try ~ catchで囲んで
catchで
FileNotFoundException
かまたは、その親を
キャッチするか
呼び出し側のメソッド自体の
throwsに
FileNotFoundException
か、またはその親がないと
コンパイルエラーになります。
チェックされる例外ってなに?
とか、
親ってなに?
とかの疑問も、同様にして、いまはがまんしてください。
とりあえず、今は、
コンパイルエラーになった時に、
呼び出そうとしているメソッドの
{}の前にthrowsがあってその
throwsのとなりにあるものが
コンパイルエラーのメッセージにでてきてたら、
呼び出し側で、それを、
try ~ catchしておけば、
コンパイルがとおって、とりあえずは、
自分がやりたい動くものが作れるということだけ。
知っとけば十分だと思います。
お返事ありがとうございました!
>初心者に見えるので、言葉を選んで書きます。
ありがとうございます!お察しのとおり筋金入りの初心者でしてあまり難しいことを言われても混乱しちゃいます(笑)
言葉を選んでくださって大変わかりやすかったです。今は気にしなくていいところなども教えてくださってこれからの学習も計画が立てやすくなりました。
これからもっとJavaのことについて勉強していきたいです。今回はどうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 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
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Java java final 1 2022/06/10 22:49
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- Java eclipse実行ができない 2 2022/07/27 04:47
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
JSPで<SELECT>の中にDBから持っ...
-
onClickで関数呼出し後に、結果...
-
mainメソッドのthrows節で設定...
-
final修飾子を使っているのに、...
-
Labelコントロールに数字を代入...
-
Refreshメソッドの使い方
-
DataGridViewでセルクリックイ...
-
コマンドプロンプト実行後に画...
-
エクセルVBAにおけるON TIMEメ...
-
プログラミング Java
-
worksheets & rows メソッドは...
-
クエリ文字列の"?"の後を非表示...
-
JAVA コンパイル時のエラー
-
C# 演算 最大値 最小値 表現の仕方
-
boolean型のフィールドとゲッタ...
-
DBを扱う上でのclose()メソッド...
-
エクセルのマクロでプリンタを...
-
VBScriptからストアドプロシー...
-
フォントサイズ(C# or VB)
マンスリーランキングこのカテゴリの人気マンスリー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を終了したい...
おすすめ情報