屬於編譯異常
A:只會在運行時突然「嘣」一聲,告訴你越界了;
B:「==」和「=」都是運算符,不會報錯的;
C:程序不會自動退出而已;
D:這個就是編譯錯誤,無法通過!
B. java怎麼知道異常類是編譯異常還是運行異常
不知道你用什麼開發
在dos下比較容易區分
javac(編譯文件)與 java(執行文件) 命令知道吧?
在敲javac 後報的錯誤都是編譯異常
在敲java 後報的錯誤都是運行異常
比如你寫個java程序,簡單點的直接輸出(1/0)的結果,編譯是通過的,而執行起來就報錯了(算術錯誤),那它就是運行異常
回復樓下:本來就是要在dos下編譯運行的嘛,在Eclipse里當然不行了,它會自動檢查的,高級貨
C. 編譯時異常和運行時異常有什麼區別啊
Throwable 是所有 Java 程序中錯誤處理的父類 ,有兩種資類: Error 和 Exception 。 Error :表示由 JVM 所偵測到的無法預期的錯誤,由於這是屬於 JVM 層次的嚴重錯誤 ,導致 JVM 無法繼續執行,因此,這是不可捕捉到的,無法採取任何恢復的操作,頂多隻能顯示錯誤信息。 Exception :表示可恢復的例外,這是可捕捉到的。 Java 提供了兩類主要的異常 :runtime exception 和 checked exception 。 checked 異常也就是我們經常遇到的 IO 異常,以及 SQL 異常都是這種異常。 對於這種異常, JAVA 編譯器強制要求我們必需對出現的這些異常進行 catch 。所以,面對這種異常不管我們是否願意,只能自己去寫一大堆 catch 塊去處理可能的異常。 但是另外一種異常: runtime exception ,也稱運行時異常,我們可以不處理。當出現這樣的異常時,總是由虛擬機 接管。比如:我們從來沒有人去處理過 NullPointerException 異常,它就是運行時異常,並且這種異常還是最常見的異常之一。 出現運行時異常後,系統會把異常一直往上層拋,一直遇到處理代碼。如果沒有處理塊,到最上層,如果是多線程就由 Thread.run() 拋出 ,如果是單線程就被 main() 拋出 。拋出之後,如果是線程,這個線程也就退出了。如果是主程序拋出的異常,那麼這整個程序也就退出了。運行時異常是 Exception 的子類,也有一般異常的特點,是可以被 Catch 塊處理的。只不過往往我們不對他處理罷了。也就是說,你如果不對運行時異常進行處理,那麼出現運行時異常之後,要麼是線程中止,要麼是主程序終止。 如果不想終止,則必須撲捉所有的運行時異常,決不讓這個處理線程退出。隊列裡面出現異常數據了,正常的處理應該是把異常數據舍棄,然後記錄日誌。不應該由於異常數據而影響下面對正常數據的處理。 在這個場景這樣處理可能是一個比較好的應用,但並不代表在所有的場景你都應該如此。如果在其它場景,遇到了一些錯誤,如果退出程序比較好,這時你就可以不太理會運行時異常 ,或者是通過對異常的處理顯式的控製程序退出。 異常處理的目標之一就是為了把程序從異常中恢復出來 。
D. 編譯錯誤和運行時異常怎麼區分
編譯錯誤 一般都是語法錯誤
運行時錯誤一般都是比如數組索引指向空值 4/0 這類錯誤
請參考
E. 編譯時異常和運行時異常怎麼理解,怎麼區分兩者
編譯錯誤,一般是語法上存在問題,編譯過不去; 運行錯誤,是指程序在運行過程中出現錯誤,只能說是程序存在一定的邊界bug; 編譯錯誤一般是指java語法的錯誤,運行錯誤分兩種一種是error還有就是Exception 有的異常是拋出但可繼續執行之後的代碼
F. c++中什麼是語法錯誤,什麼是編譯錯誤
程序的錯誤主要分成三種:
編譯鏈接錯誤;
編譯鏈接錯誤又分成編譯錯和鏈接錯。
編譯錯就是普通意義上的語法錯,編譯器進行語法檢查不通過,也就是程序違背了計算機語言的語法,例如:括弧不匹配、變數名拼寫錯誤、用保留字定義變數名等;
鏈接錯是指程序通過了語法檢查,但是無法生成可執行文件,最常見的是鏈接找不到lib庫。初學者有時寫了函數的聲明,但是缺少函數的定義,此時就會出現鏈接錯。
運行錯誤;
運行錯是程序可以執行,但是在執行過程中發生異常,提前退出程序。最常見的是指針越界,打開文件失敗繼續讀取文件,總而言之是讓計算機執行一些不能執行的語句。
邏輯錯誤
邏輯錯是程序也能運行,就是結果不對,主要原因有:程序演算法本身錯誤,程序和演算法不同義等。
例如:新手經常將判斷相等的==寫成=賦值,往往就會導致邏輯錯。
你的BD(int,int); 是一句函數調用?還是一句函數聲明?
G. Java調用方法的時候怎樣處理異常類型
暈。才學幾天其實沒有特別必要去了解java異常機制,因為很多東西你可能不太明白。這個知識點可以循環漸進的去深入。
簡而言之,異常主要分為兩大類,運行時異常和編譯時異常;
顧名思義,編譯異常就是在編譯過程中會出現的異常,必須提供方法去處理,否則就會編譯不過去。一般採用try..catch代碼塊,去捕獲然後在代碼塊內部提供處理方法。然後會發生異常的類通常要去拋出這個類型的異常,也就是throws**Exception,在類文件編譯的時候通知jvm,這個類會發生如下異常,在內部相對應拋出的處理代碼。舉個例子,讀取文件就是典型的IO異常,如果不提供異常拋出的方法,那麼如果所讀取文件的路徑非法,那麼程序會直接崩潰,為了避免發生這種情況,jvm機制強制要求你必須提供一個處理路徑非法的方法來避免程序崩潰。這類屬於編譯異常。
try{讀取文件的方法
}catch(Exceptione){
如果異常,在這里拋出路徑異常。。。
}finally{
不管是否異常,都要執行--關閉資源
}
另一個運行時異常就比較簡單了,指的是程序運行時才會發生的不可預知的異常;舉個例子,比如定義一個數組[10],但是用戶輸入了11個元素,那麼此時程序會給你拋出RunnableExcrption,告訴程序員,這個地方運行的時候發生錯了,需要進行處理,而整個程序在編譯過程中是完全沒有問題的,這只是使用時才發生的。這類異常不需要強制拋出,只有發生錯誤才去處理就行了。
H. C#中什麼是編譯錯誤,什麼是運行錯誤,它們的區別是什麼
編譯錯誤是在運行之前報出的 運行錯誤就是字面意思 在運行中發生的異常你可以把編譯錯誤想像成 明明是要考試2+2 可你卻寫成了1+1 當老師在檢查你演算法對不對之前他就知道你錯了 因為 明明是2+2 就像樓上說的 一般是語法之類的錯誤 運行錯誤 就是你沒有語法之類的錯誤 可是在運行時 演算法或者某些東西使用不當出現的錯誤比如空指針異常 溢出異常 等等 要用具體的來說明的話比如 一個數組長度只有3位 可是你卻在使用過程中賦了4位以上的值 或者當你用了一個對象可是在卻一直沒有給對象引用類型等等 就好像 要考試2+2 你是寫的2+2沒錯 但是 你卻是寫的等於5 老師就發現你的結果存在錯誤 而不是一開始就寫錯了
I. java語言中什麼叫做編譯錯誤
就是你用javac命令將源代碼(.java)文件翻譯成位元組碼(.class)文件時產生的錯誤。
比如,變數名不符合規定,變數沒定義,關鍵字拼寫錯誤等等。。。
java的編譯器(javac)會根據java語法規定做一些檢查,不符合規定的就不通過編譯。
編譯錯誤,是相對於運行時錯誤而言的。
運行時錯誤,是你用java命令運行時會出現的錯誤,一般會拋出異常。