個人財務 プログラミングJava:エラーが発生したとき - Javaアプリケーションのエラー

プログラミングJava:エラーが発生したとき - Javaアプリケーションのエラー

目次:

ビデオ: エラーを解決できないエンジニアは致命的!5つの解決策 2024

ビデオ: エラーを解決できないエンジニアは致命的!5つの解決策 2024
Anonim

Javaアプリケーションでのエラーは、さまざまな時に発生する可能性があります。ただし、次のセクションで説明するように、エラーが発生するタイミングをコンパイル時と実行時の2つのカテゴリに大別することができます。

コンパイル時エラー

コンパイラはアプリケーションコードをJavaバイトコードに変換します。このプロセスでは、人間が読めるコードを記述し、それをJava Runtime Environment(JRE)が理解できるものに変換します。

<!このプロセスを実行するためには、コンパイラはコードを解析しなければなりません。つまり、アプリケーションが何をしたいのかを明白に判断する方法でコードを読み取ります。それをやりたいと思っています。あいまいなコードを記述するための規則を破ると、コンパイラはエラーメッセージを表示します。このメッセージは実際には一種の例外です。

解析 は、人間が読める形式のコードなど、入力した内容を読み込み、Javaバイトコードなどの別のものに変換することを意味します。アプリケーションはユーザーの入力を解析することもできます。たとえば、ユーザーは、アプリケーションコードが数字に変わる文字列を入力できます。 <!したがって、構文解析は、ある種の入力を読み込み、その入力を特定の方法で解釈し、次に解釈された入力に基づいて出力を生成する行為です。パーザは、入力が期待どおりでないときにエラーを生成します。

たとえば、ユーザーが文字Cを含む文字列を入力したときに、123などの数値を含む文字列を期待すると、パーサは入力が正しくないことを示す例外を生成します。 <!コンパイラは通常、何が間違っているのか、どこでエラーが発生したのかを正確に伝えるので、コンパイル時エラーは最も簡単に処理できます。たとえ情報が正確ではないとしても、コンパイラは、少なくともあなたが壊れたコードの正しい領域に移動して、そこに含まれるエラーを探すことができます。

Java言語の仕組みを誰もが正確に理解できるように、開発者はJava言語の仕様を作成します。この仕様には、Backus-Naur Form(BNF)という特殊言語の言語要素が含まれています。 BNFを使用することは、誰かが誤解する危険性がないように、言語を記述するきわめて正確な方法です。

Java言語のBNFのサンプルは、コンピュータサイエンス(Daimi)でご覧いただけます。この仕様を読むことについてあまり心配しないでください。ほとんどの開発者は、BNFを使用する言語(つまりコンパイラ開発者のドメイン)のために解釈することを決して学ばない。

ランタイムエラー

Javaコンパイラは、コード内のすべてのエラーを見つけることができません。コードの形式が正しい場合(つまり、アプリケーションを作成する要素の入力に間違いがない場合)、コンパイラはエラーを検出しません。

たとえば、数値を4ではなく5に初期化すると、コンパイラは実際に4を入力することを考えていないため、エラーを見つけることができません。これらの種類の間違いは

ランタイムエラー

- アプリケーション実行中のある時点で発生するエラー。

ランタイムエラーはあらゆる種類の時に発生する可能性があります。特定の時刻にエラーが発生する可能性があります。以下のリストは、ランタイムエラーが発生する可能性がある場合のアイデアを提供します:

初期化:

アプリケーションが最初に起動するとき - ユーザにインターフェースを提供する前に、初期化段階。これは、変数を間違った型に設定したり、変数を初期化する前に変数を使用しようとすると、気付かれることになります。この時間中にほとんどのアプリケーションが必要なリソースを開くため、多くのリソース関連のエラーも初期化中に発生します。 動作モード: アプリケーションが初期化されると、動作モードになります。ユーザーインターフェイスがある場合、ユーザーとのやりとりを開始します。これは、ユーザーの入力が最も重要な時です。

ユーザー(またはシステムなどのアプリケーション出力の受信者)が出力が正しくないことがわかるため、この時点では初期化されていない変数も間違っています。この間、データファイルなどのリソースに対するユーザーの要求によってもエラーが発生します。

  • バックグラウンド処理: バックグラウンド処理エラーのほとんどは、環境(ネットワーク接続の喪失など)、リソースの欠落(ファイルの紛失など)、不正確に初期化された変数、タスクを実行します。いくつかのタスクは、他のタスクよりバックグラウンドでより一般的に実行されます。例えば、文書を印刷することまたはインターネットからリソースをダウンロードすることは、一般的にはバックグラウンドで実行されるが、ユーザはアプリケーションをフォアグラウンドで引き続き使用する。

  • シャットダウン: ユーザー(システムアカウントを含む)がアプリケーションにそれが不要になったことを通知すると、アプリケーションはシャットダウンフェーズを実行します。このシャットダウンフェーズでは、アプリケーションはファイルを閉じて、アプリケーションがオペレーティングシステムに混乱を与えないようにするためのハウスキーピング作業を行います。

    このフェーズで発生する最も一般的なエラーは、アプリケーションが使用したリソースを解放したり、データをディスクに保存したりしていないことです。もちろん、コーディングエラーはいつでも発生する可能性があり、この操作フェーズは例外ではありません。実際に開いているのは4つだけのときに5つのファイルを閉じるようにアプリケーションに指示できます。

  • JREは、検出された実行時エラーのほとんどを例外として表示します。ただし、JREはアプリケーションのすべてのエラーをキャッチしません。また、アプリケーションの出力を見て、出力が特定の入力に対する期待値と一致するかどうかを判断する必要があります。 さらに、何らかの方法で損傷していないことを保証するために使用するリソースの状態を調べることが重要です。たとえば、ファイルに保存する必要のあるデータは、アプリケーションがシャットダウンしたときに実際にファイルに保存されるようにする必要があります。

    Java 8はセキュリティに重点を置いています。つまり、アプリケーションを操作する際に、より多くのSecurityExceptionインスタンスが表示されます。

  • セキュリティ例外が増えても、コードに誤りがあることやJava 8がバグでいっぱいであることを意味するわけではありません。つまり、人々がアプリケーションを使用する際にセキュリティ問題を引き起こす可能性のある問題についてJava 8が自動的に検出して通知します。 JavaでSecurityExceptionのドキュメントが表示されます。ネット。もちろん、あなたはハブブブが何であるかを知りたいでしょう。

プログラミングJava:エラーが発生したとき - Javaアプリケーションのエラー

エディタの選択

Drupalフォーラムの有効化 - ダミー

Drupalフォーラムの有効化 - ダミー

フォーラムはユーザーコミュニティを作成するのに最適です。人々は他者からの援助を得ることができ、あなたのコンテンツに関するフィードバックを提供し、単純に社会化することができます。あなたのDrupalフォーラムは、あなたが望むようにしっかりとまたはゆるやかに制御することができます。フォーラムで許可されているカテゴリを制御できます。フォーラムの例を見るには、Drupal Forumを参照してください。 ...

ドリューパルフレンドリーなウェブホスティング会社 - ダミー

ドリューパルフレンドリーなウェブホスティング会社 - ダミー

ウェブホスティング会社は、あなたがDrupalをインストールし、あなたのサイトをウェブ上に見えるようにするWebサーバー。一部の企業では、Drupalをインストールしたり、ワンクリックでインストールすることができます。あなたがDrupalのインストールをスキップする場合は、次のいずれかのアカウントを取得することを検討してください。

Drupalガーデンサイト構造管理 - ダミー

Drupalガーデンサイト構造管理 - ダミー

Drupal Garden Structureページでは、 、ページ、およびブロックを表示します。このページから制御できる特定の機能、ブロック、およびページには、連絡先フォーム、フォーラム、メーリングリストなどがあります。ブロックで表示される機能をブロックで管理することもできます。

エディタの選択

エグゼクティブとのデータマイニング - ダミー

エグゼクティブとのデータマイニング - ダミー

数字で遊ぶという楽しみのためにデータマイニングに取り掛からない。あなたは行動を望む。あなたは正しいことを見たいと思っています。データからの確かな証拠に基づいてビジネス上の決定を下すことが重要であることを理解しています。しかし、あなたは決定を下す権限を持つ人ではありません。だからあなたは...

ビッグデータガバナンスチャレンジ - ダミー

ビッグデータガバナンスチャレンジ - ダミー

データガバナンスは、大きなデータソースが彼らがどのように管理されているか。従来のデータウェアハウスやリレーショナルデータベース管理の世界では、データ保護の必要性に関するルールをよく理解している可能性があります。たとえば、医療界では、それは...

エディタの選択

エレクトロニクスコンポーネント:赤外線ライトダミーを作成する方法

エレクトロニクスコンポーネント:赤外線ライトダミーを作成する方法

赤外線を電気的に生成するには、赤外線スペクトルで動作する特殊な発光ダイオード(LED)を使用します。赤外線LED(しばしばIR LEDと呼ばれる)は、RadioShackまたは電子部品を販売する他の店で容易に入手できます。 IR LEDは、通常のLEDと似ていますが、光を見ることはできません。

デジタルエレクトロニクス:キット74のDOSコマンド - ダミーの

デジタルエレクトロニクス:キット74のDOSコマンド - ダミーの

を通して、あなたの電子プロジェクトを制御する場合パラレルポートであるKit 74 DOSソフトウェアは、コマンドプロンプトから実行できるRELAY、DELAY、WAITFORの3つのコマンドで構成されています。 RELAYコマンドRELAYコマンドは、1バイトのデータをパラレルポートに送信します。あなたから実行できること - RELAY、DELAY、およびWAITFOR - 8つの出力端子のそれぞれが...

デジタルエレクトロニクス:フリップフロップ回路の種類? - エレクトロニクスではダミー

デジタルエレクトロニクス:フリップフロップ回路の種類? - エレクトロニクスではダミー

、フリップフロップは特殊なタイプのゲートラッチ回路です。フリップフロップにはいくつかの異なるタイプがあります。フリップフロップの最も一般的なタイプは次のとおりです。SRフリップフロップ:SRラッチに似ています。 CLOCK入力に加えて、SRフリップフロップにはSETとRESETという2つの入力があります。 SET入力がHIGHの場合...