什么情况下会用到try-catch
本文不區(qū)分語言,只為記錄一次有收獲的面試。
面試官:什么情況下用到try-catch?
程序員:代碼執(zhí)行預(yù)料不到的情況,我會使用try-catch。
面試官:什么是預(yù)料不到的情況呢?
程序員:比如我要計(jì)算a除以b,但是b是變量,如果b等于0程序就會出錯(cuò),所以我會將程序代碼放在try中。
面試官:還有其他情況會遇到try-catch嗎?
程序員:我會在上傳文件時(shí)使用try-catch,之前做過一個(gè)網(wǎng)站有上傳文件的功能,線下測試的時(shí)候沒有問題,但是那個(gè)線上環(huán)境是一個(gè)僅有100M的虛擬空間,除了代碼剩余的空間所剩無幾,所以網(wǎng)站上線后沒過多長時(shí)間上傳文件就在catch中報(bào)錯(cuò),空間不足。
面試官:還有其他場景會用到try-catch嗎?
程序員:我還會在使用數(shù)據(jù)庫事務(wù)的時(shí)候使用try-catch,如果事務(wù)執(zhí)行成功就提交事務(wù),如果事務(wù)執(zhí)行失敗就由catch提示錯(cuò)誤并回滾事務(wù)。還有就是在使用curl方式訪問其他網(wǎng)絡(luò)地址的時(shí)候會用到,如果網(wǎng)絡(luò)訪問出錯(cuò)或者網(wǎng)絡(luò)訪問超時(shí)就在catch中拋出錯(cuò)誤。還有就是之前寫winfrom軟件的時(shí)候調(diào)用攝像頭和打印機(jī),會使用try-catch。
面試官:那我可否歸納為當(dāng)程序需要打開一個(gè)資源,使用完后需要關(guān)閉的情況下,需要使用try-catch。就想你上面說到的文件上傳寫入,數(shù)據(jù)庫事務(wù)的提交,還有攝像頭和打印機(jī)的使用,都是這種情況。
除了上面所說的情況,你還有其他場景會用到try-catch嗎?
程序員:還有就是我的程序調(diào)用其他人寫的程序接口的時(shí)候,我不敢保證別人的接口返回的都是約定好的返回值。所以如果接口返回約定好的返回值,那么try中的程序正常執(zhí)行,如果意料之外catch拋出錯(cuò)誤。
?
轉(zhuǎn)載于:https://www.cnblogs.com/lts8989/p/5472142.html
總結(jié)
以上是生活随笔為你收集整理的什么情况下会用到try-catch的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spark 编译
- 下一篇: 王爽《汇编语言第三版》实验10-1代码实