我讀到有關從需要澄清編譯錯誤和運行時錯誤
Runtime vs Compile time和 How exactly does java compilation take place?
什麼,我可以推斷是,在編譯過程中,編譯器不運行時錯誤和編譯錯誤由零檢查邏輯,但只有語法和拼寫錯誤錯誤,其中在運行時的邏輯被選中,這些是如何實現等..像師,內存不夠的。
所以,如果我的理解是正確的,然後一個僅在編譯階段得到編譯錯誤和運行時僅在執行程序錯誤..
例如讓我考慮一個簡單的程序
public class Try {
public static void main(String[] args) {
System.out.println("My first program");
}
}
現在,當我在這個階段編譯(即javac)如果有任何錯誤產生,那麼這些錯誤稱爲編譯錯誤,在此期間檢查語法和錯字錯誤。
並且在將字節碼轉換爲本機/機器碼(e.e java)的過程中產生的錯誤稱爲運行時錯誤,在此期間檢查程序邏輯。
所以,只有在第二階段(即將字節碼轉換爲機器碼)執行和運行時錯誤開始時,纔會出現編譯錯誤。
請糾正我,如果我的理解是錯誤的...
「僅在執行開始時編譯錯誤」 - 否 - 僅在編譯時。運行時錯誤 - 不 - 不轉換爲機器代碼 - 運行程序時出現邏輯錯誤 – Randy
編譯器不僅僅是語法檢查。例如,它執行類型檢查,因此在執行之前發現許多邏輯錯誤。 – Ingo