ホームページ  >  に質問  >  本文

为什么java到处都要用到try catch?

新手学java,在什么情况下要包括try catch啊?
我理解的try catch 是处理异常。
难道java有些方法对象 本身就要配合try catch来使用的吗?

天蓬老师天蓬老师2766日前1763

全員に返信(18)返信します

  • ringa_lee

    ringa_lee2017-04-18 10:28:06

    腫れてるから…
    冗談

    返事
    0
  • 黄舟

    黄舟2017-04-18 10:28:06

    Java の設計哲学、Checked Exception。関数が非実行時例外をスローすると、外部の呼び出し元は try catch を実行して、設計されたすべての例外が確実にキャッチされて処理されるようにする必要があります。しかし、悪用される可能性はあります。

    返事
    0
  • PHPz

    PHPz2017-04-18 10:28:06

    プログラムの実行中に例外をグローバルにキャプチャできますか?

    返事
    0
  • 高洛峰

    高洛峰2017-04-18 10:28:06

    2333、基本的に高級プログラミング言語には TRY CATCH がありますが、そうでない場合でも、プログラムの堅牢性を高めるためにエラー処理を追加することを考える必要があります。例外についてはまったく気にしないので、記述する必要はありません。 より重要な位置にのみ書くこともできます。 場合によっては、トランザクション処理を追加する必要があります。

    返事
    0
  • ringa_lee

    ringa_lee2017-04-18 10:28:06

    現在の観点から見ると、特に基礎となる JDBC を使用する場合、try/catch は少し面倒です (ただし、現在ではそのようなことはほとんどありません。データベースに非公式の小さな調整を行う場合は、ORM を導入することをお勧めします。あまりお勧めできないアプローチです) )。どこにでもトライ/キャッチがあります。そして、それらはすべて統合された SQLException であり、問​​題が何であるかを知るには、基礎となる層によって返されたコードを確認する必要があります。

    しかし、これは Java の包括的な機能です。大規模なプロジェクトでは、制御不能な状況が頻繁に発生し、すべてが計画どおりに進むことは考えられません。すべてはあなたの期待通りに進みます。堅牢で完全なシステムには、予期せぬ単純な問題に対処するための基盤が必要です。これが Java 例外システムの本来の目的です。実際、Java では、開発とデバッグの便宜のために拡張例外定義が許可されています。

    春が来る前、開発チームのアーキテクチャを構築していたとき、チーム メンバーが独自に拡張できるようにビジネス レイヤーとデータベース レイヤーにカスタム例外を導入していましたが、早期に起こり得ることに対処するために共有し、コミュニケーションする必要がありました。ビジネスシステムの状況は考慮されていません。その後、このモデルはメンテナンス担当者から好評を博しました。システムで発生する例外の 80 ~ 90% はカスタマイズされた例外範囲内にあるため、runtimeException が発生することはほとんどありません。問題を見つけてメンテナンスするのに非常に便利です。

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:28:06

    try がない場合、例外によりプログラムがクラッシュします。そして、プログラムが正常に動作することを確認してみてください。例:

    リーリー

    計算で除数が 0 の場合、try がないとエラーが報告され、プログラムは直接クラッシュします。 try を使用すると、プログラムを実行して、エラーが発生した理由を出力できます。 try catch を log4j と組み合わせて使用​​すると、プログラムの将来のメンテナンスに非常に役立ちます。

    返事
    0
  • 怪我咯

    怪我咯2017-04-18 10:28:06

    Q: 初心者が Java を学習する場合、どのような状況で try catch を含めるべきですか? 问:新手学java,在什么情况下要包括try catch啊?

    答:普及一点基本知识:

    • 异常的原理机制

    当程序中抛出一个异常后,程序从程序中导致异常的代码处跳出,java虚拟机检测寻找和try关键字匹配的处理该异常的catch块,如果找到,将控制权交到catch块中的代码,然后继续往下执行程序,try块中发生异常的代码不会被重新执行。如果没有找到处理该异常的catch块,在所有的finally块代码被执行和当前线程的所属的ThreadGroup的uncaughtException方法被调用后,遇到异常的当前线程被中止。

    • 异常的结构

    Java异常结构中定义有Throwable类,Exceotion和Error是其派生的两个子类。其中Exception表示由于网络故障、文件损坏、设备错误、用户输入非法等情况导致的异常,这类异常是可以通过Java异常捕获机制处理的。而Error表示Java运行时环境出现的错误,例如:JVM内存溢出等。

    • 总结说明

    异常是程序出问题的一种本能反应,使用try catch表示你能很好处理相应代码块的异常情况,从而避免程序异常中断,反之,你就throws Exception,把异常向上一级抛出。


    问:我理解的try catch 是处理异常。难道java有些方法对象 本身就要配合try catch来使用的吗?

    答え: いくつかの基本的な知識を普及させます:

    • 異常原理メカニズム

    プログラム内で例外がスローされると、Java 仮想マシンはプログラム内の例外を発生させたコードから飛び出し、try キーワードに一致する例外を処理する catch ブロックを見つけます。 try ブロック内の catch ブロックに制御が渡され、try ブロック内で例外が発生したコードは再実行されません。例外を処理するための catch ブロックが見つからない場合、finally ブロック コードがすべて実行され、現在のスレッドが属する ThreadGroup の uncaughtException メソッドが呼び出された後、例外が発生した現在のスレッドは終了します。
    • 異常な構造
    • Throwable クラスは Java 例外構造で定義されており、Exceotion と Error はその 2 つの派生サブクラスです。例外は、ネットワーク障害、ファイルの破損、デバイスのエラー、不正なユーザー入力などによって引き起こされる例外を表します。このような例外は、Java 例外キャプチャ メカニズムを通じて処理できます。エラーは、JVM メモリ オーバーフローなど、Java ランタイム環境で発生するエラーを表します。
    • 概要説明

    例外はプログラムの問題に対する本能的な応答です。try catch を使用すると、対応するコード ブロックで例外を適切に処理できるため、例外をスローして次のレベルに例外をスローできます。

    <時間>

    Q: try catch についての私の理解は、例外を処理することです。 Java には、try catch とともに使用する必要があるメソッド オブジェクトがいくつかありますか?

    答え: 基本的な知識を広めましょう:

    異常な分類


    🎜🎜🎜検出可能な例外🎜: 検出可能な例外は、例外をスローするように宣言されているメソッドについて、コンパイラーによって処理または宣言の規則が強制されます。この例外がキャッチされない場合、コンパイラーは失敗し、コンパイルは行われません。許可された。 🎜🎜 🎜🎜🎜未チェック例外🎜: 未チェック例外は、処理ルールまたは宣言ルールに従いません。このような例外が発生した場合、必ずしも適切なアクションが取られるわけではなく、コンパイラはそのような例外が解決されたかどうかをチェックしません。 🎜🎜 🎜🎜 🎜🎜🎜🎜概要説明🎜🎜🎜🎜 🎜 この問題については、関連するソース コードを参照して分析し、理解することをお勧めします。一般原則として、呼び出したメソッドに検出可能な例外がある限り、それを Try catch または throws で処理する必要があります。例外。例外を次のレベルにスローします。次の例は次のとおりです: 🎜 🎜🎜(トライキャッチを使用するシナリオ)🎜🎜 リーリー 🎜🎜(関連するソースコード分析を表示)🎜🎜 リーリー 🎜🎜(分析概要)🎜🎜コンストラクターPrintWriter(File file)の後にFileNotFoundExceptionがスローされるため、コンストラクターを呼び出す際にそれによってスローされる例外を処理する必要があります。 🎜

    返事
    0
  • 阿神

    阿神2017-04-18 10:28:06

    一般的な言語には例外処理メカニズムがあります。

    私の記事の 1 つは、Java の例外メカニズムについて簡単に紹介しています。お役に立てれば幸いです。

    返事
    0
  • キャンセル返事