日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cronschedulebuilder 到时还没运行完_为什么我的软件编译时没问题,运行时却出错?...

發(fā)布時(shí)間:2023/12/9 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cronschedulebuilder 到时还没运行完_为什么我的软件编译时没问题,运行时却出错?... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

首先有件事要和大家說一下:我的公眾號(hào)現(xiàn)在可以留言了!

出于種種不可抗力的原因(你們懂的),2018 年 3 月 12 號(hào)之后注冊(cè)的公眾號(hào)將不帶有留言功能,并且前三個(gè)月內(nèi)注冊(cè)但并未使用的公眾號(hào)的留言功能也會(huì)被一并回收,所以我這個(gè)號(hào)注冊(cè)時(shí)就沒有留言了。最近我發(fā)現(xiàn)了可以用于留言的小程序,所以就借著這篇文章試驗(yàn)一下這種留言功能。希望看到這篇文章的小伙伴們能夠給我留個(gè)言,我會(huì)一一回復(fù)的。


從開發(fā)工具談起:

這是我平常用的幾個(gè)編輯器。記得我剛開始學(xué) C 語言,學(xué) Java 的時(shí)候,還是用 Notepad++ 這種文本編輯器寫代碼,老師說是為了打基礎(chǔ),加深記憶。后來做開發(fā),開始接觸一些開發(fā)工具,什么 Dev C++,Eclipse,VS 還有 AndroidStudio 啥的,剛開始用的時(shí)候就覺得這些工具太神奇了,不光是組織你的工程文件,更是在你編寫代碼的時(shí)候幫你檢查錯(cuò)誤。我相信,代碼自動(dòng)補(bǔ)全和糾錯(cuò)一定是一個(gè)開發(fā)者最常用到的功能。不過,我想你也一定不建議編程初學(xué)者在學(xué)習(xí)的時(shí)候就使用這種東西,因?yàn)楣δ軐?shí)在是太好用了!(以至于不怎么需要?jiǎng)幽X很多工作就自動(dòng)完成了)

盡管當(dāng)時(shí)覺得神奇,但是現(xiàn)在的我明白的:開發(fā)工具里的糾錯(cuò)機(jī)制,正是來源于 Java 里對(duì)異常的判斷。編譯通過的軟件運(yùn)行卻崩潰,也與它有關(guān)。借著還是初學(xué)者時(shí)的提問,今天再來把這個(gè)基礎(chǔ)知識(shí)復(fù)習(xí)一下


1.異常概述:
學(xué)過 Java 的小伙伴們應(yīng)該都知道,在 Java 里,異常主要分兩種:Error (錯(cuò)誤)和 Exception (例外),它們都繼承自 Throwable 類。也就是說 Java 中所有的異常處理機(jī)制都來源于這個(gè)類。兩個(gè)子類的區(qū)別非常好判斷,其實(shí)只要看名字就能知道:Error,表示“錯(cuò)誤”,尤其是指那些比較嚴(yán)重的錯(cuò)誤,比如保存文件時(shí)磁盤空間已滿。這種情況已經(jīng)構(gòu)成了代碼運(yùn)行中徹徹底底的“錯(cuò)誤”,而并非修改代碼就能解決的,所以作為開發(fā)者不必解決,只需要妥善地退出并彈出友好的提示即可。Exception 表示“例外”,這兩個(gè)字表示的含義很明確:一般沒事——只要你能按“規(guī)矩”使用/編寫軟件。這類異常是開發(fā)者所需要關(guān)心的。

2.代碼中的異常:

忘加分號(hào)、未定義變量之類的錯(cuò)誤,開發(fā)工具都能在編寫時(shí)檢查出來,這類代碼中的問題如果不解決,就無法通過編譯,被稱為編譯時(shí)異常。而如果代碼通過了編譯,軟件開始運(yùn)行后發(fā)生的錯(cuò)誤則被成為運(yùn)行時(shí)異常(RuntimeException)。比如在計(jì)算器軟件中讓 0 作為除數(shù),開發(fā)者應(yīng)該處理這樣的“例外”。這是 Exception 類里包涵的兩類情況。有一個(gè)簡單的判別方法:如果一個(gè)類繼承自 RuntimeException 類,就是運(yùn)行時(shí)異常;如果直接繼承自 Exception 就是編譯時(shí)異常。

3.如何處理異常:

首先應(yīng)該想一下,為什么我們非要去處理異常?如果不去處理的話又會(huì)發(fā)生什么?

在 Eclipse 輸入了以下代碼:

運(yùn)行后的控制臺(tái)輸出:

顯然,程序會(huì)報(bào)錯(cuò)。更重要的是程序會(huì)直接中斷(在沒有提示,更沒有安全措施的情況下),這才是開發(fā)者需要妥善處理異常的原因。

解決方法:很簡單,為了使得可能出現(xiàn)的異常得到處理并且程序不會(huì)中斷,代碼有兩種編寫方式,一種是 try...catch...finally組織代碼,另一種 throw/throws (直接拋出給調(diào)用者)。基本的用法我想大家都會(huì)用,我就不多說了,忘了的話稍微查一下書即可。值得注意的是,我看過一些視頻教程里的老師為了圖方便,在演示時(shí)把可能存在問題的大段代碼(并不是每行代碼都涉及異常)都用 try 給包住,然后直接只 catch 一個(gè)“Exception“。在課堂上這樣節(jié)省時(shí)間無可厚非,但是開發(fā)時(shí)最好不要這樣圖方便。軟件運(yùn)行時(shí),Java 虛擬機(jī)遇到 try 就進(jìn)入了異常處理機(jī)制,會(huì)預(yù)留計(jì)算機(jī)資源來應(yīng)對(duì)可能出現(xiàn)的異常。”try“ 里包含的代碼越多,可能涉及的異常種類就越多,就會(huì)在運(yùn)行時(shí)占用更多資源(而并沒有真正使用),造成浪費(fèi)。所以 try 結(jié)構(gòu)里的代碼越少越好。當(dāng) try{} 里的代碼出現(xiàn)異常時(shí),虛擬機(jī)會(huì)創(chuàng)建一個(gè) Exception 對(duì)象與 catch 里的 Exception 參數(shù)進(jìn)行匹配,然后運(yùn)行對(duì)應(yīng)catch里的代碼。

“throws ”跟在方法名之后,表示將可能出現(xiàn)的異常拋出,更多地只是一種標(biāo)記,而 “throw”是一個(gè)具體的動(dòng)作 —— 拋出一個(gè)異常對(duì)象。


好的,有關(guān)異常的內(nèi)容就先寫到這,但還沒完。未來幾天我會(huì)再把 IO 方面的內(nèi)容復(fù)盤一下,涉及異常的會(huì)一并補(bǔ)充。

謝謝你能讀到這里,歡迎留言討論!

總結(jié)

以上是生活随笔為你收集整理的cronschedulebuilder 到时还没运行完_为什么我的软件编译时没问题,运行时却出错?...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。