1. 編譯錯誤和運行時異常怎麼區分
編譯錯誤 一般都是語法錯誤
運行時錯誤一般都是比如數組索引指向空值 4/0 這類錯誤
請參考
2. InvocationTargetException屬於什麼異常,是運行時異常還是編譯時異常,
編譯錯誤,一般是語法上存在問題,編譯過不去;
運行錯誤,是指程序在運行過程中出現錯誤,只能說是程序存在一定的邊界bug;
編譯錯誤一般是指java語法的錯誤,運行錯誤分兩種一種是error還有就是Exception 有的異常是拋出但可繼續執行之後的代碼,有的異常是無法繼續進行的代碼如:
RuntimeException,ClassCastException, 那麼,編譯和運行時期最好的理解就是java1.5之後出現的泛型機制,在以前的版本中如果考慮不當,只會在運行時出現異常,現在加了泛型,問題會給暴露在編譯時期,這樣就提高了代碼的安全性。
3. c++中什麼是語法錯誤,什麼是編譯錯誤
程序的錯誤主要分成三種:
編譯鏈接錯誤;
編譯鏈接錯誤又分成編譯錯和鏈接錯。
編譯錯就是普通意義上的語法錯,編譯器進行語法檢查不通過,也就是程序違背了計算機語言的語法,例如:括弧不匹配、變數名拼寫錯誤、用保留字定義變數名等;
鏈接錯是指程序通過了語法檢查,但是無法生成可執行文件,最常見的是鏈接找不到lib庫。初學者有時寫了函數的聲明,但是缺少函數的定義,此時就會出現鏈接錯。
運行錯誤;
運行錯是程序可以執行,但是在執行過程中發生異常,提前退出程序。最常見的是指針越界,打開文件失敗繼續讀取文件,總而言之是讓計算機執行一些不能執行的語句。
邏輯錯誤
邏輯錯是程序也能運行,就是結果不對,主要原因有:程序演算法本身錯誤,程序和演算法不同義等。
例如:新手經常將判斷相等的==寫成=賦值,往往就會導致邏輯錯。
你的BD(int,int); 是一句函數調用?還是一句函數聲明?
4. java中異常與錯誤有什麼區別
在Java.lang軟體包中有一個java.lang.Throwable類,這個類是java中所有錯誤和異常的超類。
顧名思義,這個類(以及子類)的實例可以通過JVM或者java的throw語句拋出。而catch子句的參數也只能是Throwable類型(或者其子類型)。
Throwable類有兩個子類,Error與 Exception。
錯誤與異常都是在程序編譯和運行時出現的錯誤。不同的是,異常可以被開發人員捕捉和處理;而錯誤一般是系統錯誤,一般不需要開發人員處理(也無法處理),比如內存溢出。
Exception是java中所有異常的基類。在java中異常被分為兩大類,編譯時異常和運行時異常。
編譯時異常是由於外在條件不滿足而引發的,比如程序視圖打開一個並不存在的遠程Socket埠。這種異常是可預知的。編譯器強制要求對編譯時異常進行捕獲或聲明。
運行時異常往往是系統錯誤,比如數組下標越界等。通常我們可以不做處理,系統會把它們交給預設的異常處理程序。有人說在運行時異常出現後,異常會被一層層向上拋直到找到處理代碼,如果我們沒有處理運行時異常,異常會被拋到最上層然後拋出,從而導致最上層程序或線程退出。
Error是java中所有錯誤的基類。錯誤通常是我們無法處理的,絕大多數情況下,我們不應該試圖捕獲錯誤。
5. Java編譯錯誤和運行錯誤有什麼區別 能否深入淺出
編譯出錯差不多就是語法不對,比如你寫String str = 'str';這么寫語法不對編譯就會出錯。運行出錯是指語法沒問題但是邏輯有問題,比如一個方法傳進一個String類型的變數str,方法體中有類似於str.equals("str");的語句,但是傳進的str是個null,那麼那一句就相當於null.equals("str");這肯定會拋空指針異常。
用手機做例子,編譯出錯就是手機在生產的時候零件不對,那就肯定不能出廠。運行出錯就是手機組裝完出廠了,到手了你沒用來打電話,直接拿來砸核桃了,那手機肯定報廢(NOKIA除外)。