色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

try catch應該在for循環里面還是外面?

jf_ro2CN3Fa ? 來源:CSDN ? 2023-07-31 10:16 ? 次閱讀

1. 使用場景

為什么要把 使用場景 擺在第一個 ?

因為本身try catch 放在 for循環 外面 和里面 ,如果出現異常,產生的效果是不一樣的。

怎么用,就需要看好業務場景,去使用了。

① try catch 在 for 循環 外面

代碼示例 :

publicstaticvoidtryOutside(){
try{
for(intcount=1;count<=?5;?count++)?{
????????????if?(count?==?3)?{
????????????????//故意制造一下異常
????????????????int?num?=?1?/?0;
????????????}?else?{
????????????????System.out.println("count:"?+?count?+?"?業務正常執行");
????????????}
????????}
????}?catch?(Exception?e)?{
????????System.out.println("try?catch??在for?外面的情形,?出現了異常,for循環顯然被中斷");
????}
}

結果:

79362002-2ec9-11ee-815d-dac502259ad0.png

效果結論:

try catch 在 for 循環 外面 的時候, 如果 for循環過程中出現了異常, 那么for循環會終止。

② try catch 在 for 循環 里面

代碼示例 :

publicstaticvoidtryInside(){
for(intcount=1;count<=?5;?count++)?{
????????try?{
????????????if?(count?==?3)?{
????????????????//故意制造一下異常
????????????????int?num?=?1?/?0;
????????????}?else?{
????????????????System.out.println("count:"?+?count?+?"?業務正常執行");
????????????}
????????}?catch?(Exception?e)?{
????????????System.out.println("try?catch??在for?里面的情形,?出現了異常,for循環顯然繼續執行");
????????}
????}
}

結果:

79580e92-2ec9-11ee-815d-dac502259ad0.png

效果結論:

try catch 在 for 循環 里面 的時候, 如果 for循環過程中出現了異常,異常被catch抓掉,不影響for循環 繼續執行。

ps:

在面試的時候,如果真的連上面這個在外面在里面使用效果都沒說對,那,真的會去等通知了。

但是 之前不會的看官,看完這一篇, 肯定會了。

2. 性能

時間上, 其實算是無差別。

內存上, 如果沒出異常,其實也是無差別。

但是如果出現了異常, 那就要注意了。

注意點是什么 ?看代碼:

我們簡單用

Runtimeruntime=Runtime.getRuntime();
longmemory=runtime.freeMemory();

來統計一下內存消耗情況:

797624cc-2ec9-11ee-815d-dac502259ad0.png

結論:

也就是說, try catch 放在 for 循環里面 ,因為出現異常不會終止 for循環。所以如果真的存在大批量業務處理全是異常,有那么一定的內存消耗情況。

如果說代碼沒出錯的話, try catch 在 for 里面 和 外面 ,都是幾乎沒區別的。

為啥, 因為 異常try catch 其實一早編譯完就標記了 如果從哪兒(from)出現異常,會直接去到(to)的那行代碼去。

Exception table : 當前函數程序代碼編譯涉及到的異常;

type :異常類型;

target:表示異常的處理起始位;

from:表示 try-catch 的開始地址;

to:表示 try-catch 的結束地址;

7989fc9a-2ec9-11ee-815d-dac502259ad0.png

所以如果不考慮業出錯,是否終止循環, 這個try catch 放里放外沒啥區別。

3. 個人看法

其實就是看業務。我需要出現異常就終止循環的,就放外頭;

不需要終止循環,就搞里頭。

但是要注意一點就是,別在for循環里面去 查庫調用第三方啥的,這些操作,如果必要,需要慎重考慮了。(別什么都搞里頭!!!)





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19317

    瀏覽量

    230110
  • 異常中斷
    +關注

    關注

    0

    文章

    9

    瀏覽量

    1233

原文標題:面試官問我 ,try catch 應該在 for 循環里面還是外面?

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    為什么應該在SEPIC轉換器中使用耦合電感?

    為什么應該在SEPIC轉換器中使用耦合電感?
    發表于 02-06 06:58

    電壓跟隨器何時應該在負反饋上接電阻?

    請問: 1、電壓跟隨器何時應該在負反饋上接電阻? 2、單電源供電時,提供偏置的分壓電阻其阻值如何選擇? 3、綜合問題1和2,針對單電源供電的電壓跟隨器應用,是否需要增加負反饋電阻,以平衡(抵消)輸入偏置電流的影響。 注:+3.3V供電,目標OP器件OPA357。
    發表于 09-18 08:28

    ADS1281的SINC濾波器GROUP DELAY延時是多少?應該在哪看了?

    我在ADS1281的DATASHEET中看到FIR的GROUP DELAY 在線性情況下是30*1/fdata. 如果 我只有SINC,不用FIR,這時候的GROUP DELAY 濾波器延時是多少,應該在哪看了?
    發表于 12-03 06:36

    DAQmx配置是放在最外面循環外面還是里面

    大家好,我是第一次使用NI的采集卡,在配置DAQmx進行模擬輸入的時候,不知道是把DAQmx的配置放在最外面循環還是放在循環里面(我的程序
    發表于 06-19 22:17

    應該在NVS上安裝常規VDA嗎?

    之間存在很大差異。您是否會在所有卡上安裝帶有HDX 3D Pro的VDA,還是應該在NVS上安裝常規VDA?如果您有使用Remote PC + HDX 3d pro的經驗,請查看P1000和P2000
    發表于 09-26 15:28

    在Visual Studio中使用82357A應該在源代碼中導入哪些庫?

    親愛的專家,我是使用Visual Studio 2013的新手。現在我嘗試使用82357A GPIB與我的設備進行通信。我搜索谷歌,有關如何在Vb.net中使用82357A的信息很少。我應該在源代碼
    發表于 11-07 10:06

    請問ddr2匹配電阻應該在那里加

    我看了有些人的板在ddr2地址線加匹配電阻,數據線不加。有的人在數據線加匹配電阻地址線不加,到底應該在那里加的,是參考DDR芯片的手冊還是參考TMS320C6748的手冊來做?
    發表于 01-21 13:50

    請問我是否應該在差分對的導線上連接一個100歐姆的電阻?

    如果我使用電阻分壓器為Spartan 6的3.3V lVDS再生直流電平,我是否還應該在差分對的導線上連接一個100歐姆的電阻?非常感謝。以上來自于谷歌翻譯以下為原文If I use
    發表于 07-03 10:10

    h文件有何作用?應該在那兒包含h文件?

    h文件有何作用?h文件里應該有什么?h文件不應該有什么?應該在那兒包含h文件?
    發表于 07-15 09:36

    Sqlserver Try CatchCatch捕獲到錯誤重試一次的方法分享

    使用while重試一次不太好,如果try catch在游標里面,這樣的話每個游標記錄都要在try里面執行兩次。
    發表于 11-10 17:44

    stm32CubeIDE應該在哪里編輯makefile?

    你好我正在使用 stm32Cube IDE。我應該在哪里編輯 makefile?
    發表于 01-31 08:41

    ltc2344的驅動程序應該在哪里下載呢?

    ltc2344的驅動程序應該在哪里下載呢?
    發表于 12-01 08:21

    應該在VR Media Player中尋找什么?

    問題是:用戶應該在VR媒體播放器中尋找什么樣的質量和收益?對于經典視頻播放器,大多數人確切地知道他們在尋找什么,因為他們具有測試各種軟件和應用程序的長期經驗。
    的頭像 發表于 07-06 16:34 ?2432次閱讀

    公司這套架構統一處理try...catch真香!

    軟件開發springboot項目過程中,不可避免的需要處理各種異常,spring mvc 架構中各層會出現大量的try {...} catch {...} finally {...} 代碼塊,不僅
    的頭像 發表于 02-27 10:47 ?488次閱讀

    使用try-catch捕獲異常會影響性能嗎?

    “BB 不如 show code,看到沒, 老王,我把 try-catch 從 for 循環里面提出來跟在for循環里面做個對比跑一下,你猜
    的頭像 發表于 04-01 11:08 ?1226次閱讀
    主站蜘蛛池模板: 国产在线精品亚洲二品区| 人妻中文字幕无码系列| 动漫美女无衣| 国产精品资源在线观看网站| 国产女合集小岁9三部| 日本女人水多| ⅹxx日本护土| 国产揄拍国产精品| 乌克兰10一12x video| 最近的2019中文字幕国语版| 好男人免费观看在线高清WWW| 午夜理伦片免费| 9988电影网| 国产精品久久久久影院免费| 日韩视频在线观看| 大肥女ass樱桃| 色橹| 国产成年人在线观看| 婷婷综合久久狠狠色| 国产成人精品区在线观看| 受被攻做到腿发颤高h文| 国产成人啪精视频精东传媒网站| 天天夜夜草草久久亚洲香蕉| 国产欧美精品一区二区色综合| 亚洲黄色在线播放| 高清国产一区| 我们中文在线观看免费完整版 | 欧美00后rapper潮水| 亚洲精品第一页| 久久精品AV一区二区无码| 视频区 国产 欧美 日韩| 国产精品久久久久久熟妇吹潮软件| 午夜伦伦电影理论片费看| 好大好硬好爽好深好硬视频| 在线免费观看a视频| 国产免费人视频在线观看免费| 亚洲国产高清在线观看视频| 国产成人一区免费观看| 亚洲精品www久久久久久久软件| 久久www99re在线播放| bdsm中国精品调教ch|