Android NoteX Q11: trycatch(Exception e) はすべての例外をキャッチできますか

もちろん、存在しないライブラリをロードするなどの場合はそうではありません。

System.loadLibrary("c++_shared");

それでもエラーが発生します。


java.lang.UnsatisfiedLinkError: dlopen に失敗しました: ライブラリ「libc++_shared.so」が java.lang.Runtime.loadLibrary0(Runtime.java:1087) で
java.lang.Runtime.loadLibrary0(Runtime.java:1008) に見つかりません
java.lang.System.loadLibrary(System.java:1664) で

では、そのようなエラーをどのようにキャッチすればよいでしょうか?
trycatch(Throwable e) を使用します。

Throwable、Exception、および Error の違いを確認してください。
後の 2 つは前者のサブクラスです。
例外: プログラムで処理できる例外としてよく使用され、通常は実行時に発生し、処理できます。
エラー: 多くの場合、プログラム内の重大なエラーを指します。この例外は、NoClassDefFoundError、Virtual MachineError などの一部のコンパイル ステージで見つかり、一部は実行時に発生します: OutOfMemoryError。

したがって、このタイプは非常に明確です。「ライブラリ * が見つかりません」は重大なエラーであり、ライブラリが見つからないため、例外の範囲には属しません。重大なエラーですので、trycacth は行わない方が良い、解決した方が良いです。

おすすめ

転載: blog.csdn.net/ganshenml/article/details/118344446