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

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

為什么java到處都要用到try catch?

為什么java到處都要用到try catch?

慕容3067478 2019-02-23 08:58:32
新手學(xué)java,在什么情況下要包括try catch啊?我理解的try catch 是處理異常。難道java有些方法對象 本身就要配合try catch來使用的嗎?
查看完整描述

18 回答

?
慕桂英546537

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊

你要try catch是因?yàn)槟阌玫膶ο蟮姆椒暶骺赡軙伋霎惓5摹?/p>

查看完整回答
反對 回復(fù) 2019-03-01
?
largeQ

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊

除了RuntimeException以外,其它異常如果不捕獲就會編譯不通過,一般編譯器會提示方法可能拋出異常

查看完整回答
反對 回復(fù) 2019-03-01
?
翻翻過去那場雪

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊

有時(shí)候有很多方法的執(zhí)行不會是一擼到底那么順暢,中間總會出岔子,報(bào)異常。要知道到底出了啥岔子,就得把異常捕獲,然后采取合理的方式進(jìn)行處理。

查看完整回答
反對 回復(fù) 2019-03-01
?
嚕嚕噠

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超7個(gè)贊

異常捕獲能夠快速定位問題,一般加到你覺得可能會產(chǎn)生異常的代碼上,選擇合適的Exception和代碼位置是最關(guān)鍵的。

查看完整回答
反對 回復(fù) 2019-03-01
?
繁花不似錦

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊

要配合日志,快速定位錯(cuò)誤還有錯(cuò)誤信息

查看完整回答
反對 回復(fù) 2019-03-01
?
隔江千里

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊

首先并不是到處都用try catch。try catch是在可能會拋異常的時(shí)候使用的。他是一個(gè)很好的機(jī)制,但是不要濫用.
甚至某些編程語言不建議使用try catch

查看完整回答
反對 回復(fù) 2019-03-01
?
蕪湖不蕪

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊

catch異常有利于程序穩(wěn)定性

查看完整回答
反對 回復(fù) 2019-03-01
?
慕慕森

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊

一個(gè)健壯的程序并不是向我們想的那樣去運(yùn)行,它會在跑的過程中發(fā)生一些意外,例如數(shù)據(jù)庫連上,對一個(gè)空引用調(diào)用它的方法,你要讀取的本地文件不存在等等各種意外情況,這些就是異常,在寫程序的時(shí)候都要考慮進(jìn)去的,這時(shí)就需要捕獲異常,然后對其進(jìn)行特殊處理。

查看完整回答
反對 回復(fù) 2019-03-01
?
POPMUISE

TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊

Java語言是非常健壯的,非RuntimeException必須要在程序中捕獲向上拋出,總之總是要處理。try catch就是處理異常的。

查看完整回答
反對 回復(fù) 2019-03-01
?
交互式愛情

TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊

設(shè)計(jì)方法的人可以用throws聲明一個(gè)函數(shù)"可能"拋某種異常

使用此方法的人必須考慮這個(gè)異常 (要么調(diào)用時(shí)try/catch,要么自己也throws把異常傳出去,兩個(gè)都不做就會編譯錯(cuò)誤)

查看完整回答
反對 回復(fù) 2019-03-01
?
GCT1015

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊

因?yàn)橛纺[......
開個(gè)玩笑

查看完整回答
反對 回復(fù) 2019-03-01
?
慕田峪4524236

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊

全局捕獲程序運(yùn)行時(shí)的異常么

查看完整回答
反對 回復(fù) 2019-03-01
?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊

從現(xiàn)今的角度上來看,try/catch略顯笨重,尤其是使用底層JDBC的時(shí)候(雖然現(xiàn)在這種情況很少了,在做一些非正式的對數(shù)據(jù)庫的小調(diào)整的時(shí)候,引入orm是一種不太可取的做法)。到處都是try/catch。而且都是統(tǒng)一的SQLException,要去查底層返回的code才知道出現(xiàn)了什么問題。

但是這正是java包容萬象的一個(gè)特征。一個(gè)大一點(diǎn)的項(xiàng)目,很多時(shí)候都會有不可控的情況,不太可能事事順心。事事都如你所料。一個(gè)健壯完善的系統(tǒng)應(yīng)該有應(yīng)對一些意想不到的簡單的問題的基礎(chǔ)應(yīng)對。這是java異常體系建立的初衷。事實(shí)上,java允許擴(kuò)展異常定義,也是為了開發(fā)調(diào)試的方便。

在spring出現(xiàn)前,我在給開發(fā)團(tuán)隊(duì)搭建架構(gòu)的時(shí)候,都會在業(yè)務(wù)層和數(shù)據(jù)庫層引入自定義異常,允許團(tuán)隊(duì)的成員自行擴(kuò)展,但是需要分享交流,就是應(yīng)對業(yè)務(wù)系統(tǒng)中可能出現(xiàn)的先期開發(fā)中未考慮到的情況。后來這種模式受到維護(hù)人員的一致好評。因?yàn)橄到y(tǒng)出現(xiàn)的80-90%的異常都在我們自定義的異常范圍內(nèi),很少出現(xiàn)runtimeexception。查找問題維護(hù)起來非常方便。

查看完整回答
反對 回復(fù) 2019-03-01
?
瀟瀟雨雨

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊

如果沒有try的話,出現(xiàn)異常會導(dǎo)致程序崩潰。而try則可以保證程序的正常運(yùn)行下去,比如說:

try{
int i = 1/0;
}catch(Exception e){
........
}

一個(gè)計(jì)算的話,如果除數(shù)為0,則會報(bào)錯(cuò),如果沒有try的話,程序直接崩潰。用try的話,則可以讓程序運(yùn)行下去,并且輸出為什么出錯(cuò)。try catch,配合log4j使用會對程序的日后維護(hù)幫助很大。

查看完整回答
反對 回復(fù) 2019-03-01
?
PIPIONE

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊

問:新手學(xué)java,在什么情況下要包括try catch?。?/code>

答:普及一點(diǎn)基本知識:

  • 異常的原理機(jī)制

當(dāng)程序中拋出一個(gè)異常后,程序從程序中導(dǎo)致異常的代碼處跳出,java虛擬機(jī)檢測尋找和try關(guān)鍵字匹配的處理該異常的catch塊,如果找到,將控制權(quán)交到catch塊中的代碼,然后繼續(xù)往下執(zhí)行程序,try塊中發(fā)生異常的代碼不會被重新執(zhí)行。如果沒有找到處理該異常的catch塊,在所有的finally塊代碼被執(zhí)行和當(dāng)前線程的所屬的ThreadGroup的uncaughtException方法被調(diào)用后,遇到異常的當(dāng)前線程被中止。

  • 異常的結(jié)構(gòu)

Java異常結(jié)構(gòu)中定義有Throwable類,Exceotion和Error是其派生的兩個(gè)子類。其中Exception表示由于網(wǎng)絡(luò)故障、文件損壞、設(shè)備錯(cuò)誤、用戶輸入非法等情況導(dǎo)致的異常,這類異常是可以通過Java異常捕獲機(jī)制處理的。而Error表示Java運(yùn)行時(shí)環(huán)境出現(xiàn)的錯(cuò)誤,例如:JVM內(nèi)存溢出等。

  • 總結(jié)說明

異常是程序出問題的一種本能反應(yīng),使用try catch表示你能很好處理相應(yīng)代碼塊的異常情況,從而避免程序異常中斷,反之,你就throws Exception,把異常向上一級拋出。


問:我理解的try catch 是處理異常。難道java有些方法對象 本身就要配合try catch來使用的嗎?

答:再普及一點(diǎn)基本知識:

  • 異常的分類

  • 可檢測異常:可檢測異常經(jīng)編譯器驗(yàn)證,對于聲明拋出異常的任何方法,編譯器將強(qiáng)制執(zhí)行處理或聲明規(guī)則,不捕捉這個(gè)異常,編譯器就通不過,不允許編譯。

  • 非檢測異常:非檢測異常不遵循處理或者聲明規(guī)則。在產(chǎn)生此類異常時(shí),不一定非要采取任何適當(dāng)操作,編譯器不會檢查是否已經(jīng)解決了這樣一個(gè)異常。

  • 總結(jié)說明

關(guān)于這點(diǎn)問題,建議通過查看相關(guān)源代碼來分析理解,總的原則就是,只要你調(diào)用的方法中帶有可檢測異常,你就需要處理,try catch是一種方式,或者就throws Exception,把異常向上一級拋出。下面舉例說明如下:

(用到try catch的場景)

PrintWriter pw = null;
try {
    pw = new PrintWriter(new File(CodeUtil.invoPath, name));
    pw.write(str_invo.toString());
} catch (FileNotFoundException e) {
    throw new RuntimeException(name+"文件未找到!");
}

(查看相關(guān)源代碼分析)

public PrintWriter(File file) throws FileNotFoundException {
    this(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file))),
         false);
}

(分析總結(jié))
因?yàn)闃?gòu)造方法PrintWriter(File file)后面跟了throws FileNotFoundException,所以你調(diào)用該構(gòu)造方法時(shí)就必須對它拋出的異常進(jìn)行處理。

查看完整回答
反對 回復(fù) 2019-03-01
?
翻閱古今

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊

一般語言都是有異常處理機(jī)制的。

我的一篇文章其中一段對于Java的異常機(jī)制進(jìn)行了簡單的介紹,望能幫到你。

查看完整回答
反對 回復(fù) 2019-03-01
  • 18 回答
  • 0 關(guān)注
  • 2135 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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