最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

新手入門,一堆代碼在報錯,教你如何一招定位bug!

2022-03-04 17:38 作者:千鋒教育  | 我要投稿

1. 前言

剛開始學習Java語言的小伙伴, 很可能被各種各樣的程序bug搞得焦頭爛額, 甚至勸退.健哥將手把手帶你們了解Java中的異常體系, 如何識別Bug以及如何解決Bug.

2. Java語言中異常的分類

讓我們先來了解下Java中的異常分類, 如下圖:

圖片

Java中的異常分為Error錯誤和Exception異常兩大類:

  • Error錯誤: 一般所有編譯時期的錯誤或者系統(tǒng)錯誤, 都來自于虛擬機自身. 錯誤無法處理.

  • Exception異常: 它規(guī)定程序本身可以處理的異常, 是指程序本身有問題, 異??梢蕴幚?

  • 編譯期異常: 一般集成開發(fā)工具比如IDEA工具, Eclipse工具等都有語法提示功能. 編譯期異常這些工具都有明顯的提示, 根據(jù)提示修改即可.

  • RuntimeException運行時異常: 運行時異常, 其中一部分比如IO異常等是可以通過try...catch手動拋出, 或者通過throws等Java語法處理掉. 而有些是程序運行中意外發(fā)成的, 這些異常也就是bug. 下面主要研究的就是bug如何處理.

3. 解決Bug整體思路

程序出Bug的時候, 我們最直接的感受是, 程序報錯了.初學者這個時候就很慌, 哪里出問題了呢? 我該如何下手呢? 然后直接用眼睛一遍一遍的看代碼, 想看出問題.

這些都是錯誤的做法!!!

如果是幾百行, 上千行代碼, 將很難用眼睛看出問題.所以解決Bug的整體思路是:

  • 找到程序代碼異常出現(xiàn)在第幾行, 也就是哪一行代碼的問題, 導致的Bug.

  • 找到問題后, 修改就方便了. 其實改Bug主要是不容易找到Bug在哪里.

4. 發(fā)現(xiàn)解決Bug利器 - 日志

看錯誤日志, 雖然都是英文的, 可能有些小伙伴看不懂, 但是建議通讀一遍, 看看是否有提示錯誤出現(xiàn)在第幾行, 很多簡單的問題, 日志上已經(jīng)指定了哪個類, 第幾行的錯誤.

下面大家看例子:

/

運行結(jié)果如下:

圖片

這樣大家就可以清楚的看到, 錯誤日志中已經(jīng)明顯的告訴我們, 問題出在TestA.java這個類的第20行代碼上, 我的第20行代碼是:int total = Integer.parseInt(a.sum());

原因是他的返回值是字符串并且包含中文, 我們強制轉(zhuǎn)換類型為Integer, 結(jié)果拋出了類型轉(zhuǎn)換異常.

5. 發(fā)現(xiàn)解決Bug利器 - Debug調(diào)試工具使用

不管是IDEA集成開發(fā)工具, 還是Eclipse開發(fā)工具都自帶調(diào)試Bug的利器, Debug工具.但是初學者不會用,?下面健哥帶大家學習Debug工具的使用.

首先就是需要給代碼打斷點, 斷點的作用是決定代碼執(zhí)行到哪一行暫停下來, 好讓我們詳細看看執(zhí)行情況. 而初學者恰恰不會打斷點, 搞得很暈, 所以健哥給大家的建議就是初學者, 可以在代碼入口的第一行打斷點.

斷點使用規(guī)則:

  • 斷點不可以打在接口上, 只能使用在類上,

  • 斷點不可以打在方法定義行上

  • 斷點不可以打在空行, 注釋行

  • 斷點不可以打在全局變量上

下面標注的都是不可以打斷點的位置:

圖片
  • main方法是程序的入口, 斷點可以打在它下面的第一行上, 如下圖:

圖片
  • 運行main方法, 執(zhí)行代碼, 會自動進入到斷點行, 暫停下來, 接下來可以點擊下圖所示按鈕, 讓代碼一行一行執(zhí)行. 每點擊一次代碼執(zhí)行一行, 這樣在哪一行報錯, 就清晰可見了. 方便Bug定位.

圖片
  • 在Variables標簽中還可以看到執(zhí)行后的變量以及對象的值是多少, 每執(zhí)行一行代碼的時候, 看著代碼腦子里想它的結(jié)果運行完這一行是多少, 再看下面監(jiān)測的數(shù)值, 是否匹配, 是否滿足預(yù)期, 如果不滿足, 是自己想錯了, 還是代碼執(zhí)行錯了. 這樣就知道代碼執(zhí)行的原因了.

圖片

推薦健哥作品


想了解更多有趣好玩的技術(shù)操作可以私信UP進群~

新手入門,一堆代碼在報錯,教你如何一招定位bug!的評論 (共 條)

分享到微博請遵守國家法律
区。| 克拉玛依市| 张家界市| 罗江县| 宁晋县| 南安市| 鹤岗市| 鄯善县| 台南市| 商南县| 鄯善县| 鄂伦春自治旗| 庆城县| 华坪县| 若尔盖县| 磴口县| 景德镇市| 会东县| 磴口县| 九龙城区| 垫江县| 潢川县| 甘德县| 郧西县| 洮南市| 沿河| 读书| 宕昌县| 荔浦县| 静海县| 旬阳县| 奉新县| 天水市| 闸北区| 沙湾县| 临颍县| 闸北区| 宁晋县| 鹤壁市| 诸城市| 林甸县|