編譯異常和運行異常如何判斷
❶ java 程序中的錯誤有三種類型分別是什麼
錯誤,分為編碼錯誤,運行錯誤,jvm內部錯誤。
編碼錯誤在eclipse等開發工具 中可以直觀的看到,這種錯誤比較少見。
運行錯誤,又稱運行時異常,這是代碼邏輯錯誤導致的,發生這種錯誤時一定要靜下心,從程序入口處尋找錯誤誘因。
jvm內部錯誤屬於Java虛擬機內部錯誤,比較少見,發生這種錯誤時,建議重啟計算機。
❷ java什麼時候是編譯出錯,什麼時候會報異常呢
編譯錯時因為你寫的語法不正確,報異常有時候是程序自身的錯誤 大部分是你程序邏輯有錯誤
❸ 編譯時異常和運行時異常怎麼理解,怎麼區分兩者
編譯錯誤,一般是語法上存在問題,編譯過不去; 運行錯誤,是指程序在運行過程中出現錯誤,只能說是程序存在一定的邊界bug; 編譯錯誤一般是指java語法的錯誤,運行錯誤分兩種一種是error還有就是Exception 有的異常是拋出但可繼續執行之後的代碼
❹ Java編程中 常見的異常有哪幾種
相信作為程序員的我們在對程序進行編譯過程中經常會遇到錯誤,或者在運行過程中出現錯誤,在這里主要跟大家談談經常遇到的一些異常與錯誤,以及解決辦法。
異常是指程序在編譯或運行過程出現的錯誤。
在java.lang包中Throwable包含了所有的異常。
Error (錯誤) 和Exception(異常)
(1)Error(錯誤)
一旦發生無法修復,但可以避免發生。
常見錯誤類:
IOError:I/O錯誤,當發生嚴重的I/O錯誤時,拋出此錯誤。
VirtualMachineError:虛擬機錯誤,當 Java 虛擬機崩潰或用盡了它繼續操作所需的資源時,拋出該錯誤。
StackOverflowError:棧內存滿了,當應用程序遞歸太深而發生堆棧溢出時,拋出該錯誤。
OutofMemoryError:堆內存滿了,因為內存溢出或沒有可用的內存提供給垃圾回收器時,Java 虛擬機無法分配一個對象,這時拋出該異常。
以上是一些常見的錯誤,在Error類中還有一些別的錯誤(參照文件Java.lang.Throwable.Error).
(2)Exception(異常)
一旦發生,可以捕獲並處理,不會導致程序終止,有時可以避免有時無法避免。
異常的分類:
1.編譯時異常(需要強制處理) 2.運行時異常(不需要強制處理)
常見的異常有:
IOException:輸入輸出流異常
FileNotFoundException:文件找不到的異常
ClassNotFoundException:類找不到的異常
DataFormatException:數據格式化異常
NoSuchFieldException:沒有匹配的屬性異常
NoSuchMethodException:沒有匹配的方法異常
SQLException:資料庫操作異常
TimeoutException:執行超時異常
常見的運行時異常:
RuntimeException:運行時異常
NullPointerException:空指針異常
:數組越界異
ClassCastException:類型轉換異常
IllegalArgumentException:非法的參數異常
InputMismatchException:輸入不匹配
以上是常見的一些異常,另外還有別的異常,參見文件:Java.lang.Throwable.Exception
既然我們常常會遇到一些異常,那我們如何來處理這些異常就是一個急需解決的事情。
(1) 如何處理編譯時異常?
方法一:將需要處理的代碼塊放在一個try...catch...中
try{
//需要處理異常的代碼
}catch(XXXException ef){
ef.printStackTrace();
}
我們方法一就是要將我們不確定的代碼放入try......catch中,先進行try一下,如果沒有異常,則不會觸發catch,沒有輸出,一旦出現異常,那麼catch就會工作,在catch中捕獲異常信息,根據異常信息進行補救措施。
如以下代碼:
從結果可以看出,我們在輸入數據的時候出現錯誤,這樣通過自定義異常能夠讓我們更直接快速的找到運行或編譯時的異常。
在上述中我們分別提到了三種throw,分別是Throwable,Throws以及throw,那麼到底三者有什麼區別?
Throwable:是指在在Java.lang包中的一個類,其包含了所有的異常和錯誤,其中類Error和Exception 是它
的子類。
Thows:是指在解決編譯時異常,將方法中異常拋給上一級,在方法後面要加Throw Exception來進行拋。
throw:是指在自定義異常時,如果方法出現異常,那麼將作為引用方法的對象拋出。即拋出異常。
希望對您有所幫助!~
❺ Java之運行時異常與編譯時異常區別
Java中用2種方法處理異常:
1.在發生異常的地方直接處理;
2.將異常拋給調用者,讓調用者處理。
Java常見的異常:
(1)編譯時異常:Java.lang.Exception
(2)運行期異常:Java.lang.RuntimeException
Java.lang.Exception和Java.lang.Error繼承自Java.lang.Throwable;
Java.lang.RuntimeException繼承自Java.lang.Exception.
編譯時異常: 程序正確,但因為外在的環境條件不滿足引發。例如:用戶錯誤及I/O問題----程序試圖打開一個並不存在的遠程Socket埠。這不是程序本身的邏輯錯誤,而很可能是遠程機器名字錯誤(用戶拼寫錯誤)。對商用軟體系統,程序開發者必須考慮並處理這個問題。Java編譯器強制要求處理這類異常,如果不捕獲這類異常,程序將不能被編譯。
運行期異常: 這意味著程序存在bug,如數組越界,0被除,入參不滿足規范.....這類異常需要更改程序來避免,Java編譯器強制要求處理這類異常。
❻ java怎麼知道異常類是編譯異常還是運行異常
不知道你用什麼開發
在dos下比較容易區分
javac(編譯文件)與 java(執行文件) 命令知道吧?
在敲javac 後報的錯誤都是編譯異常
在敲java 後報的錯誤都是運行異常
比如你寫個java程序,簡單點的直接輸出(1/0)的結果,編譯是通過的,而執行起來就報錯了(算術錯誤),那它就是運行異常
回復樓下:本來就是要在dos下編譯運行的嘛,在Eclipse里當然不行了,它會自動檢查的,高級貨
❼ 按異常在編譯時是否被檢測來分,異常可以分成哪兩種
檢查時異常(checkException)和運行時異常(runtime Exception)
❽ (問答題,10.0分)什麼是異常什麼是致命錯誤寫出 Java
在計算機編程中,異常是指程序運行中出現的錯誤。異常可以是編譯時異常,也可以是運行時異常。編譯時異常是在編譯程序時檢測到的錯誤,而運行時異常是在程序運行時檢測到的錯誤。
致命錯誤是指導致程序無法繼續運行的錯誤。致命錯誤可能是由硬體故障、操作系統故障或其他嚴重問題引起的。
在 Java 中,異常是通過 Java 的異常機制來處理的。Java 的異常機制使用特殊的類型來表示異常培碼,這些類型都是 java.lang.Exception 的子類。例如,如果程序嘗試訪問不存在的數組悄中宏元素,它可能會拋出 異常。
下面是一個簡單的 Java 程序,該程序演示了如何處理異常。
Copy codeimport java.io.FileInputStream;import java.io.FileNotFoundException;public class ExceptionExample { public static void main(String[] args) { try { // 嘗試打開文件
FileInputStream fis = new FileInputStream("myfile.txt");
} catch (FileNotFoundException fnfe) { // 處理文件未找到異常
System.out.println("文件未找到!");
}
}
}
在上面的程序中,程序試圖打開啟冊文件 "myfile.txt"。如果文件不存在,會拋出 FileNotFoundException 異常