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

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

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

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

例外

例外(exception)とは、プログラムの処理実行中に発生する、通常の処理の続行を妨げる特殊な事象のことを呼びます。この「例外」が発生した場合に、現在の処理を中断し、変わりに別の処理を実行させる事を「例外処理」と呼びます。

例外処理

例外処理(Exception handling)とは、プログラム実行中に異常が発生した場合、通常フローから外れ、例外として別の処理を行うようにデザインされたプログラミング言語構造です。

Q&A

解決済

3回答

2065閲覧

Java 例外処理について

tmp0

総合スコア21

Java

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

例外

例外(exception)とは、プログラムの処理実行中に発生する、通常の処理の続行を妨げる特殊な事象のことを呼びます。この「例外」が発生した場合に、現在の処理を中断し、変わりに別の処理を実行させる事を「例外処理」と呼びます。

例外処理

例外処理(Exception handling)とは、プログラム実行中に異常が発生した場合、通常フローから外れ、例外として別の処理を行うようにデザインされたプログラミング言語構造です。

0グッド

0クリップ

投稿2020/09/12 04:48

お世話になっております。
例外処理が難しくて行き詰まっております。
①まず、try文の中に書かれている
File Writerは文字列をファイルに書き込むクラスで実行時例外が起きる可能性があるクラス?で間違いないでしょうか。実行時例外が起きる可能性があるものはAPIリファレンスに書いてあるといいますが見つけられません。(見方がわかっていないので仕方ないのですが)
②File Writerをnewしてその中に(”data.txt")というものをお文字列として入れている?
dataのtxtって何だ?となっています。
もしよろしければご教授お願いします。完全素人で申し訳ありません。

コード import java.io.*; public class Main10 { public static void main(String[] args){ try(FileWriter fw = new FileWriter("data.txt");){ fw.write("hello"); }catch(Exception e){ System.out.println("何らかの例外発生"); } } }

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

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

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

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

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

guest

回答3

0

実行時例外が起きる可能性があるものはAPIリファレンスに書いてあるといいますが見つけられません

javadoc java11とかで探すと釣れてきます。

https://docs.oracle.com/javase/jp/11/docs/api/java.base/java/io/FileWriter.html

実行時例外が起きる可能性があるものは

new FileWriter("data.txt")なので、Stringを引数にとるコンストラクタを探す。

https://docs.oracle.com/javase/jp/11/docs/api/java.base/java/io/FileWriter.html#%3Cinit%3E(java.lang.String)

引数の意味も、発生する可能性のある例外についても記述があります。

投稿2020/09/12 04:54

shiketa

総合スコア3971

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

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

0

①まず、try文の中に書かれている

File Writerは文字列をファイルに書き込むクラスで実行時例外が起きる可能性があるクラス?で間違いないでしょうか。実行時例外が起きる可能性があるものはAPIリファレンスに書いてあるといいますが見つけられません。(見方がわかっていないので仕方ないのですが)

前半部について
このtryの書き方は比較的新しく、try-for-resourcesと呼びます。
FileWriterなどのファイルにアクセスするクラスは、使い終わったあとにcloseメソッドを呼び出して「リソースを開放する」という操作を行うのが決まりなのですが、この構文を使うことでその操作を自動的に行ってくれます。

後半部について
「実行時例外」と呼んでしまうと、一般的にRuntimeExceptionを継承した「catchする必要のない例外」を指します。
メソッドが投げる例外はメソッドの説明に、throwsに続いて書かれています。

投稿2020/09/12 04:59

swordone

総合スコア20649

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

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

0

ベストアンサー

① まず、try文の中に書かれている File Writerは文字列をファイルに書き込むクラスで実行時例外が起きる可能性があるクラス?

try(...) の中にあるリソースは、例外が起きた場合でも、必ず開放する必要があるリソースです。
たとえば以下のようなケースがあるので、必ず開放する必要があるリソース、という概念が一般的にあります。

例: ファイルのリソースをとったまま例外でプログラムが終了 -> ファイルディスクリプタが開放されなくなる -> ファイルが読み書きできなくなる

例外を起こす可能性があるのは .write() メソッドです。

Ref: [https://docs.oracle.com/javase/jp/7/api/java/io/OutputStreamWriter.html#write(char[], int, int)](https://docs.oracle.com/javase/jp/7/api/java/io/OutputStreamWriter.html#write(char[], int, int))

② File Writerをnewしてその中に(”data.txt")というものをお文字列として入れている?

"data.txt" は単にファイル名です。 data.txt というファイルを書き込みで開く動作になります。

投稿2020/09/12 04:56

編集2020/09/12 04:59
unhappychoice

総合スコア1531

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

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

tmp0

2020/09/12 05:38

なるほど!ありがとうございます。まだまだわかってない部分は多いですが、一つ一つ解消していければと思っています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問