ホームページ Java &#&チュートリアル Javaの例外タイプとは何ですか?

Javaの例外タイプとは何ですか?

Jan 19, 2019 am 10:26 AM

エラーはユーザーとプログラマーにとって悩みの種です。開発者は明らかにプログラムが毎回失敗することを望んでいませんし、ユーザーは現在、プログラムにバグがあることに慣れているため、少なくとも 1 つのバグがあることがほぼ確実なソフトウェアに代価を支払うことを渋々受け入れています。

Javaの例外タイプとは何ですか?

#Java は、プログラマーにバグのないアプリケーションを設計する機会を提供するように設計されています。アプリケーションがリソースまたはユーザーと対話するとき、プログラマは処理できる例外を認識している可能性があります。残念ながら、プログラマが制御できない例外、または単純に無視する例外があります。つまり、すべての例外が同じではないため、プログラマはいくつかのタイプを考慮する必要があります。

例外は、プログラムが意図した実行で機能しなくなる原因となるイベントです。例外には、チェック例外、エラー、実行時例外の 3 種類があります。

チェック例外 (チェック例外)

チェック例外は、Java アプリケーションが処理できる必要がある例外です。たとえば、アプリケーションがファイルからデータを読み取る場合、FileNotFoundException を処理できる必要があります。結局のところ、期待されたファイルが想定されている場所に表示されるという保証はありません。ファイル システム上ではあらゆることが発生する可能性がありますが、アプリケーションはそれについて何も知りません。

この例を詳しく見てみましょう。 FileReader クラスを使用して文字ファイルを読み取るとします。 Java API の FileReader コンストラクター定義を見ると、そのメソッド シグネチャが見つかります。

public FileReader(String fileName)
throws FileNotFoundException
ログイン後にコピー

ご覧のとおり、コンストラクターは、FileReader コンストラクターが FileNotFoundException をスローできることを明示的に示しています。ファイル名の文字列は時々間違っている可能性があるため、これは当然のことです。次のコードを見てください:

public static void main(String[] args){
FileReader fileInput = null;
//打开输入文件
fileInput = new FileReader("Untitled.txt");
}
ログイン後にコピー

構文的には、これらのステートメントは正しいですが、このコードはコンパイルできません。コンパイラは、FileReader コンストラクターが FileNotFoundException をスローする可能性があることを認識しており、この例外を処理するかどうかは呼び出しコードに依存します。オプションは 2 つあります。まず、throw 句を指定して例外を渡すことができます:

public static void main(String[] args) throws FileNotFoundException{
FileReader fileInput = null;
//打开输入文件
fileInput = new FileReader("Untitled.txt");
}
ログイン後にコピー

または、例外を処理できます:

public static void main(String[] args){
FileReader fileInput = null;
try
{
//打开输入文件
fileInput = new FileReader("Untitled.txt");
}
catch(FileNotFoundException ex)
{
//告诉用户去找文件
}
}
ログイン後にコピー

適切に作成された Java アプリケーションは、次のように処理できるはずです。チェック 極めて異常です。

エラー

2 番目のタイプの例外はエラーと呼ばれます。例外が発生すると、JVM は例外オブジェクトを作成します。これらのオブジェクトはスロー可能なクラスから派生します。スロー可能クラスには、Error と Exception という 2 つの主要なサブクラスがあります。 Error クラスは、アプリケーションによって処理される可能性が低い例外を表します。

これらの例外はまれであると考えられます。たとえば、ハードウェアが処理しなければならないすべてのプロセスを処理できないため、JVM のリソースが不足する可能性があります。アプリケーションはエラーをキャッチしてユーザーに通知できますが、通常は、根本的な問題が解決されるまでアプリケーションをシャットダウンする必要があります。

実行時例外

実行時例外は、単にプログラマが間違いを犯したために発生します。コードを作成すると、コンパイラにはすべてが正常に見えますが、そのコードを実行すると、存在しない配列要素にアクセスしようとしたり、ロジック エラーによりメソッドが null で呼び出されたりするため、コードがクラッシュします。価値。あるいは、プログラマーが犯す可能性のあるあらゆる間違い。しかし、大丈夫です。これらの例外は徹底的なテストを通じて発見されます。エラーと実行時例外は未チェック例外のカテゴリーに分類されます。

以上がJavaの例外タイプとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか? Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか? Mar 17, 2025 pm 05:35 PM

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか? カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか? Mar 17, 2025 pm 05:44 PM

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか? キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか? Mar 17, 2025 pm 05:43 PM

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか? 高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか? Mar 17, 2025 pm 05:46 PM

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか? 適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか? Mar 17, 2025 pm 05:45 PM

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

See all articles