Javaの別のtrycatchブロック内でtrycatchブロックを宣言できますか?
はい 、を宣言できます 別のtry-catchブロック内のtry-catchブロック。これは、ネストされたtry-catchブロックと呼ばれます。
ネストされたトライキャッチブロック
- インナートライステートマンの場合 t 一致するキャッチステートメントがありません 特定の例外の場合、制御は次のtryステートメントのcatchハンドラーに転送されます。 一致するcatchステートメントに期待されます。
- これは、catchステートメントの1つが成功するまで続きます 、またはすべてのネストされた試行まで ステートメントが完了しました。
- 一致するcatchステートメントがない場合は、Javaランタイムシステム 例外を処理します。
- ネストされたtryブロックの場合 使用される場合、内部試行ブロック 最初に実行されます。内側のtryブロックでスローされた例外は、対応するcatchブロックでキャッチされます。 一致するcatchブロックが見つからない場合は、外部試行ブロックのcatchブロック ネストされたすべてのtryステートメントが使い果たされるまで検査されます。一致するブロックが見つからない場合は、Javaランタイム環境 実行を処理します。
構文
try { statement 1; statement 2; try { statement 1; statement 2; } catch(Exception e) { // catch the corresponding exception } } catch(Exception e) { // catch the corresponding exception } .............
例
import java.io.*; public class NestedTryCatchTest { public static void main (String args[]) throws IOException { int n = 10, result = 0; try { // outer try block FileInputStream fis = null; fis = new FileInputStream (new File (args[0])); try { // inner trty block result = n/0; System.out.println("The result is"+result); } catch(ArithmeticException e) { // inner catch block System.out.println("Division by Zero"); } } catch (FileNotFoundException e) { // outer catch block System.out.println("File was not found"); } catch(ArrayIndexOutOfBoundsException e) { // outer catch block System.out.println("Array Index Out Of Bounds Exception occured "); } catch(Exception e) { // outer catch block System.out.println("Exception occured"+e); } } }
出力
Array Index Out Of Bounds Exception occured
-
Javaでcatchブロックなしのtryブロックを使用できますか?
はい、finalブロックを使用することで、catchブロックなしでtryブロックを作成できます。 ご存知のとおり、tryブロックで例外が発生した場合でも、System.exit()が常に実行されることを除いて、finalブロックは常に実行されます。 例1 public class TryBlockWithoutCatch { public static void main(String[] args) { try { System.out.println(&q
-
Javaでメインメソッドをプライベートとして宣言できますか?
はい、Javaでメインメソッドをプライベートとして宣言できます。 エラーなしで正常にコンパイルされますが、実行時に、メインメソッドがパブリックではないと表示されます。 例: class PrivateMainMethod { private static void main(String args[]){ System.out.println("Welcome to Tutorials Point"); } } 上記のコードはコンパイル時に正常に機能しますが、実行