1. 程式人生 > >異常、錯誤和斷言

異常、錯誤和斷言

錯誤(Error)和異常(Exception)都繼承自Throwable類,Throwable類又實現了Serializable介面

一、錯誤(Error)

 Error表示系統級的錯誤和程式不必處理的錯誤,是程式很難恢復的一種嚴重問題,比如記憶體溢位,語法錯誤(編譯器報錯後依然執行的話)。虛擬機器會報出java.lang.Error

二、異常(Exception)

 Exception表示需要捕捉或者需要程式處理的異常

 1、執行時異常|非檢查性異常(RuntimeException)

   執行時異常是可被程式設計師避免的,在自動編譯時可被編譯器忽略的異常

   常見的執行時異常:

   ArithmeticException算術異常

   IllegalArgumentException非法引數異常

   IllegalAccessException拒絕訪問異常

   NoPointerException空指標異常

   ClassCastException型別轉換異常 

   IndexOutOfBoundException陣列下標越界異常 

   NumberFormatException數值轉換異常

 2、編譯時異常|檢查性異常(IOException)

   使用者錯誤引起的問題,編譯時異常的發生無法被編譯器忽略

   常見的編譯時異常:

   ClassNotFoundException找不到指定類異常

   FileNotFoundException

找不到指定檔案異常

   NoSuchFieldException請求變數不存在異常

   NoSuchMethodException請求方法不存在異常

   SQLExceptionsql異常

三、異常處理關鍵字

 1、try{ }

   程式碼塊中寫你要執行的可能發生異常的語句

   當某條語句發生異常,則try中本條語句之後的語句不執行,直接丟擲異常由catch捕獲

 2、catch( ){ }

   在第一個小括號宣告你要捕獲的異常型別,在程式碼塊中寫你要執行處理的語句

   多個catch連用可實現多重捕獲

   如果try中沒有可能發生相關異常的語句,則會報錯

 3、finally{ }

   程式碼塊中寫你要執行的語句

   無論怎樣,finally都會執行

 4、throw/throws

   可以在程式中用throw丟擲一個異常,或者在方法尾部用throws宣告一個或多個異常

 5、try-catch-finally與return

   如果一個方法指定了返回型別,則try-catch和finally兩者至少有一個有return語句

   當finally中沒有return語句時,finally依然會在try-catch的return語句執行前被執行

四、斷言(Assert)

 1、斷言的作用

    一般在軟體開發和測試時開啟,在軟體釋出後關閉,是一種常用的除錯方式,用於保證程式,最基本、關鍵的正確性

 2、開啟斷言

   第一步:在Run->RunConfigurations->Arguments中的VM Arguments文字框內寫如-ea,然後儲存執行(-da為禁止斷言)

   第二步:boolean isOpen = false;assert isOpen = true;手動開啟斷言

 3、使用斷言

   assert(你要判斷的布林表示式);

   當條件結果為true時,順序執行;如果為false則執行時報出java.lang.AssertionError

相關推薦

異常錯誤斷言

錯誤(Error)和異常(Exception)都繼承自Throwable類,Throwable類又實現了Serializable介面一、錯誤(Error) Error表示系統級的錯誤和程式不必處理的錯誤,是程式很難恢復的一種嚴重問題,比如記憶體溢位,語法錯誤(編譯器報錯後依然

ionic創建工程中遇到異常錯誤及解決方法

右鍵 ive hub reac 個推 註意 code down 添加 1. 創建工程——download failed ionic start myApp tabs 遇到如下錯誤 Downloading--Failed! Error:Timeout of 25000m

異常錯誤

exc 空指針異常 發生 src 程序 引用 執行 事件 -- 一、異常、錯誤的概念 異常是不正常的事件,不是錯誤 eg: 10/0,文件不存在等 錯誤是很難處理的,比如內存溢出等,不能夠通過異常處理機制來解決。 異常是程序中發生的不正常事

淺析arm的異常中斷arm工作模式的聯絡

說到異常向量,會讓人聯想到中斷向量。其實,中斷是屬於異常的子集的,也就是說中斷其實是異常其中的一種。    回到異常向量,他其實是一張表格,每個格子裡存放的是一個地址,或者是一個跳轉命令,不管是哪個,其目的都是讓PC跳轉到真正處理異常的程式碼的地方。 以下是arm的異常向

異常的形式自定義異常throwthrows的區別

異常的撲捉:     1、try{可能出現異常的程式碼塊}catch(Exception  e){}     2、在出現異常的方法的方法名後throws Exception 自定義異常: public class MyThrows extends Exception{

Python3.6.6中內建的異常錯誤與警告

BaseException +– SystemExit +– KeyboardInterrupt +– GeneratorExit +– Exception +– StopIteration +– StopAsyncI

Retrofit+RxJava 優雅的處理伺服器返回異常錯誤

異常&錯誤 實際開發經常有這種情況,比如登入請求,介面返回的 資訊包括請求返回的狀態:失敗還是成功,錯誤碼,User物件等等。如果網路等原因引起的登入失敗可以歸結為異常,如果是使用者資訊輸入錯誤導致的登入失敗算是錯誤。 假如伺服器返回的是統

Java核心技術卷一 5. java異常斷言日誌

form 什麽 表示 ase ... per 分解 new 測試 處理錯誤 由於出現錯誤而使得某些操作沒有完成,程序因該: 返回到一種安全狀態,並能夠讓用戶執行一些其他命令 允許用戶保存所有操作的結果,並以適當的方式終止程序 需要關註的問題: 用戶輸入錯誤 設備錯誤

4【Python】Python 3入門(模組/面向物件/錯誤異常/檔案操作/序列化/命名規範)

一、模組     編寫模組有很多種方法,其中最簡單的一種便是建立一個包含函式與變數、以 .py 為字尾的檔案。     另一種方法是使用撰寫 Python 直譯器本身的本地語言來編寫模組。舉例來說,你可以使用 C 語言來撰寫 Python 模組,並且在編譯後,你可以通過標準 Pyth

CoreJava讀書筆記--異常斷言日誌(二)--斷言日誌

使用斷言 在一個具有自我保護能力的程式中,斷言很常用。 (一)斷言的概念 斷言機制允許在測試期間向程式碼中插入一些檢查語句。當代碼釋出時,這些插入的檢測語句將會被自動地移走。Java語言引入了關鍵字assert。assert有兩種形式: assert 條件; 和

學習筆記之《Java核心技術卷I》---- 第七章 異常斷言日誌

異常物件都是派生與Throwable的一個例項 派生於Error類或RuntimeException類的所有異常稱為非受查異常,所有其他異常稱為受查異常 一個方法必須宣告所有可能丟擲的受查異常,而非受查異常要麼不可控制,要麼就應該避免發生 關鍵字throws位於方法之

異常日誌斷言除錯

1.處理異常 1.1異常分類 所有異常都由Throwable繼承而來,分為兩個分支: Error類:Java執行時系統內部錯誤和資源耗盡錯誤。 Exception類:兩個分支:RuntimeException和IOException RuntimeEx

《Java核心技術(卷1)》筆記:第7章 異常斷言日誌

## 1. 異常 1. (P 280)異常處理需要考慮的問題: * 使用者輸入錯誤 * 裝置錯誤 * 物理限制 * 程式碼錯誤 2. (P 280)傳統的處理錯誤的方法是:返回一個特殊的**錯誤碼**,常見的是返回-1或者`null`引用 3. (P 280)在Java中,方法

C#錯誤異常的處理

類型 div 操作 包含 文本 出現 lap aps table 錯誤的出現並不總是編寫應用程序人的原因,有時應程序會因為應用程序的最終用戶引發或運行代碼的環境而發生錯誤。無論如何,我們都應預測應用程序中出現的錯誤,並相應的進行編碼。C#處理錯誤的機制可以為每種錯誤

[轉]Go的50坑:新Golang開發者要註意的陷阱技巧常見錯誤-高級

inline pil ren todo ket blog 自定義 nec printf from : https://levy.at/blog/11 進階篇 關閉HTTP的響應 level: intermediate 當你使用標準http庫發起請求時,你得到

錯誤異常

pythonNameError 嘗試訪問一個未申明的變量ZeroDivisionError 除數為零SyntaxError 解釋器語法錯誤IndexError 請求的索引超出序列範圍KeyError 請求一個

Oracle03——遊標異常存儲過程存儲函數觸發器Java代碼訪問Oracle對象

height 微軟 數值 getc statement 數據類型 put print .exe 作者: kent鵬 轉載請註明出處: http://www.cnblogs.com/xieyupeng/p/7476717.html 1.遊標(光標)Cursor 在寫

(十一)泛型反射異常

lang 異常處理 red 系統 變量 all 不存在 意思 ron JavaSE(十一) --泛型、反射和異常 一、泛型 泛型是javaSE1.5的新特性,泛型的本質是參數化類型,也就是說所操作的數據類型被指定為一個參數,這種參數類型可以用在類、接口和方法的創建中,分別稱

python錯誤異常

weibo zab get mea ipp seh info tar tzu gemrc9級手瀑竿啦趾http://shufang.docin.com/kvvkh2156ugnred坎僚侗馴抗坡http://www.docin.com/app/user/userinfo?u

Python3 錯誤異常

錯誤 異常 error python except Edit筆記內容:Python3 錯誤和異常 筆記日期:2017-11-12Python3 錯誤和異常語法錯誤異常異常處理拋出異常用戶自定義異常finally語句預定義的清理行為異常處理機制概述: 異常處理,是編程語言或計算機硬件裏的一種