第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java的System.exit()如何與try / catch / finally塊一起使用?

Java的System.exit()如何與try / catch / finally塊一起使用?

慕碼人8056858 2019-11-29 14:54:39
我知道頭痛涉及在try / catch / finally塊中返回-在情況下,即使在try或catch塊中的返回應(yīng)該執(zhí)行的情況下,finally的返回始終是方法的返回。但是,是否同樣適用于System.exit()?例如,如果我有一個try塊:try {    //Code    System.exit(0)}catch (Exception ex) {    //Log the exception}finally {    System.exit(1)}如果沒有例外,將調(diào)用哪個System.exit()?如果出口是一個return語句,則將始終調(diào)用System.exit(1)行。但是,我不確定exit的行為是否與return不同。在極端情況下,代碼很難復(fù)制,即使不是不可能,因此我不能編寫單元測試。如果有幾分鐘的空閑時間,我將在今天晚些時候嘗試進行實驗,但是我還是很好奇,也許SO上的某人知道答案,可以在我無法運行之前提供答案。實驗。
查看完整描述

3 回答

?
侃侃無極

TA貢獻2051條經(jīng)驗 獲得超10個贊

號System.exit(0)不返回,并且不執(zhí)行finally塊。


System.exit(int)可以扔一個SecurityException。如果發(fā)生這種情況,將執(zhí)行finally塊。并且由于相同的主體從相同的代碼庫調(diào)用相同的方法SecurityException,因此第二次調(diào)用可能會拋出另一個。


這是第二種情況的示例:


import java.security.Permission;


public class Main

{


  public static void main(String... argv)

    throws Exception

  {

    System.setSecurityManager(new SecurityManager() {


      @Override

      public void checkPermission(Permission perm)

      {

        /* Allow everything else. */

      }


      @Override

      public void checkExit(int status)

      {

        /* Don't allow exit with any status code. */

        throw new SecurityException();

      }


    });

    System.err.println("I'm dying!");

    try {

      System.exit(0);

    } finally {

      System.err.println("I'm not dead yet!");

      System.exit(1);

    }

  }


}


查看完整回答
反對 回復(fù) 2019-11-29
?
守候你守候我

TA貢獻1802條經(jīng)驗 獲得超10個贊

簡單的測試,包括catch太透露,如果system.exit(0)沒有拋出安全異常,這將是最后一個執(zhí)行的語句(catch和finally所有不執(zhí)行)。


如果system.exit(0)不拋出一個安全異常,catch和finally語句執(zhí)行。如果catch和finally都包含system.exit()語句,則僅system.exit()執(zhí)行這些語句之前的語句。


在上述兩種情況下,如果try代碼屬于另一個方法調(diào)用的方法,則被調(diào)用的方法不會返回。


此處有更多詳細信息(個人博客)。


查看完整回答
反對 回復(fù) 2019-11-29
  • 3 回答
  • 0 關(guān)注
  • 835 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號