3

java puzzlers という名前の Java ブックを読んでいたときに、return、break、continue、または tHRow で finally ブロックを終了しないこと、およびチェックされた例外が finally ブロックから伝播することを決して許可しないことを発見しました。これをいくつかの短い小さな例で詳しく説明してください。完全に理解できるように..!

4

1 に答える 1

0

//このコードを実行すると、これを実行すると次の値が得られることがわかります

//finally ブロックで返されるので、try で return があっても優先されます

//キャッチ。

class A
{
int one()
    {
        try
            {
             int n[]= new int[5];
             System.out.println("inside try");
             n[7]=89;
             return 10;
            }
        catch(Exception e)
            {
             System.out.println(e);
             return 399;
            }
        finally
            {
             System.out.println(" this is finally block");
             return 20; //priority is given to finally block
            }
        }
 }

class final7
{
    public static void main(String args[])
    {
    A ob= new A();
    System.out.println(ob.one());
    }
}
于 2012-09-06T16:50:47.573 に答える