導航:首頁 > 源碼編譯 > Java編譯一個程序出現異常

Java編譯一個程序出現異常

發布時間:2023-04-05 23:21:58

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編譯異常有哪幾個

編譯異常是Exception下除了RuntimeException及其子類以外的所有子類
Java提供了兩類主要的異常:RuntimeException和CheckedException.
checked 異常也就是我們經常遇到的IO異常,以及SQL異常都是這種異常。對於這種異常,JAVA編譯器強制要求我們必需對出現的這些異常進行catch。所以,面對這種異常不管我們是否願意,只能自己去寫一大堆catch塊去處理可能的異常。
runtime exception,也稱運行時異常,我們可以不處理。當出現這樣的異常時,總是由虛擬機接管。比如:我們從來沒有人去處理過NullPointerException異常,它就是運行時異常,並且這種異常還是最常見的異常之一。
不管是不是RuntimeException 只要有異常 而且你還沒try / catch 那他一定會中斷執行 非RuntimeException 在編譯的時候 編譯器會幫你檢查 有沒有正確、完整的try / catch 如果沒有 編譯不過 RuntimeException 在編譯的時候 不檢查
參考自:http://m.blog.csdn.net/blog/zhou1216141078/12921609

⑶ java編譯中出現了Exception in thread 「main" java.lang.UnsupportedClassVersionError

這個問題是由較高版本的JDK編譯的java class文件試圖在較低版本的JVM上運行產生的錯誤。

1、解決措施就是保證jvm(java命令)和jdk(javac命令)版本一致。如果是linux版本,則在命令行中分別輸入java -version和javac -version命令來查看版本是否一致。這里假設都是1.7版本。

2、如果都一致,但還是解決不了問題,那麼你肯定不是直接在命令行中用javac來編譯的,而是用類似於eclipse、netbeans這樣的編譯器來編譯的。因為很多編譯器都自帶javac,而不是採用操作系統中的編譯器。如果你的編譯器是eclipse的話,那麼需要在項目的屬性里設置jdk版本,方法是右擊項目-->properties-->java compiler --> Enable project specific settings -->將compiler compliance level設置為1.7,也就是與jvm一致的版本(在命令行中java -version所顯示的版本)。

3、綜上,如果你是用編譯器來編譯的話,請首先確保編譯器自帶的jdk版本是否和操作系統中的java版本一致。一般是jdk和jvm版本不一致導致,可以在cmd命令下輸入java -version和javac -version看版本是否一致,不一致的話需要改JAVA_HOME保證一致。

拓展資料:

Java 異常處理

異常是程序中的一些錯誤,但並不是所有的錯誤都是異常,並且錯誤有時候是可以避免的。異常發生的原因有很多,通常包含以下幾大類:

1、用戶輸入了非法數據。

2、要打開的文件不存在。

3、網路通信時連接中斷,或者JVM內存溢出。

這些異常有的是因為用戶錯誤引起,有的是程序錯誤引起的,還有其它一些是因為物理錯誤引起的。要理解Java異常處理是如何工作的,你需要掌握以下三種類型的異常:

1、檢查性異常:最具代表的檢查性異常是用戶錯誤或問題引起的異常,這是程序員無法預見的。例如要打開一個不存在文件時,一個異常就發生了,這些異常在編譯時不能被簡單地忽略。

2、運行時異常:運行時異常是可能被程序員避免的異常。與檢查性異常相反,運行時異常可以在編譯時被忽略。

3、錯誤:錯誤不是異常,而是脫離程序員控制的問題。錯誤在代碼中通常被忽略。例如,當棧溢出時,一個錯誤就發生了,它們在編譯也檢查不到的。

⑷ java 編譯異常

錯誤代碼:400 400錯誤是由於不正確的請求造成的,說明正在搜索的網頁可能已經刪除、更名或暫時不可用。 錯誤代碼:401.1 401.1錯誤是由於登陸失敗造成的,說明沒有許可權查看該目錄或網頁。 錯誤代碼:401.2 401.2錯誤是由於伺服器配置問題而導致登陸失敗,由於伺服器端腳本未能正確發送 WWW 身份驗證頭文件欄位。如果要通過 Active Server Pages 腳本完成此項任務,可以使用"Response"對象的"AddHeader"方法來要求客戶端用特定身份驗證方法訪問資源。 錯誤代碼:401.3 401.3錯誤是由於資源上的 ACL 導致未被授權而無權訪問網頁或目錄。 錯誤代碼:401.4 401.4錯誤是由於篩選器導致授權失敗。如果Web 伺服器安裝了篩選器程序以檢查連接到伺服器的用戶。該篩選器程序能夠禁止通過連接到伺服器的身份驗證來訪問資源。 錯誤代碼:401.5 401.5錯誤是由於 ISAPI/CGI 應用程序導致授權失敗。如果所要訪問的 Web 伺服器地址上安裝了 ISAPI 或 CGI 程序用於在繼續執行之前檢驗用戶證書。該程序能夠禁止通過連接到伺服器的身份驗證證書來訪問資源。 錯誤代碼:403.1 403.1錯誤是由於"執行"訪問被禁止而造成的,若試圖從目錄中執行 CGI、ISAPI 或其他可執行程序,但該目錄不允許執行程序時便會出現此種錯誤。 錯誤代碼:403.2 403.2錯誤是由於"讀取"訪問被禁止而造成的。導致此錯誤是由於沒有可用的默認網頁並且沒有對目錄啟用目錄瀏覽,或者要顯示的 HTML 網頁所駐留的目錄僅標記為"可執行"或"腳本"許可權。 錯誤代碼:403.3 403.3錯誤是由於"寫入"訪問被禁止而造成的,當試圖將文件上載到目錄或在目錄中修改文件,但該目錄不允許"寫"訪問時就會出現此種錯誤。 錯誤代碼:403.4 403.4錯誤是由於要求SSL而造成的,您必須在要查看的網頁的地址中使用"https"。 錯誤代碼:403.5 403.5錯誤是由於要求使用 128 位加密演算法的 Web 瀏覽器而造成的,如果您的瀏覽器不支持128位加密演算法就會出現這個錯誤,您可以連接微軟網站進行瀏覽器升級。 錯誤代碼:403.6 403.6錯誤是由於IP 地址被拒絕而造成的。如果伺服器中有不能訪問該站點的 IP 地址列表,並且您使用的 IP 地址在該列表中時您就會返回這條錯誤信息。 錯誤代碼:403.7 403.7錯誤是因為要求客戶證書,當需要訪問的資源要求瀏覽器擁有伺服器能夠識別的安全套接字層 (SSL) 客戶證書時會返回此種錯誤。 錯誤代碼:403.8 403.8錯誤是由於禁止站點訪問而造成的,若伺服器中有不能訪問該站點的 DNS 名稱列表,而您使用的 DNS 名稱在列表中時就會返回此種信息。請注意區別403.6與403.8錯誤。 錯誤代碼:403.9 403.9錯誤是由於連接的用戶過多而造成的,由於Web 伺服器很忙,因通訊量過多而無法處理請求時便會返回這條錯誤。 錯誤代碼:403.10 403.10錯誤是由於無效配置而導致的錯誤,當您試圖從目錄中執行 CGI、ISAPI 或其他可執行程序,但該目錄不允許執行程序時便會返回這條錯誤。 錯誤代碼:403.11 403.11錯誤是由於密碼更改而導致無權查看頁面。 錯誤代碼:403.12 403.12錯誤是由於映射器拒絕訪問而造成的。若要查看的網頁要求使用有效的客戶證書,而您的客戶證書映射沒有許可權訪問該 Web 站點時就會返回映射器拒絕訪問的錯誤。 錯誤代碼:403.13 403.13錯誤是由於需要查看的網頁要求使用有效的客戶證書而使用的客戶證書已經被吊銷,或者無法確定證書是否已吊銷造成的。 錯誤代碼:403.15 403.15錯誤是由於客戶訪問許可過多而造成的,當伺服器超出其客戶訪問許可限制時會返回此條錯誤。 錯誤代碼:403.16 403.16錯誤是由於客戶證書不可信或者無效而造成的。 錯誤代碼:403.17 403.17錯誤是由於客戶證書已經到期或者尚未生效而造成的。 錯誤代碼:404.1 404.1錯誤表明所訪問 Web 站點的 IP 地址不接受對埠(請求的來源埠)的請求。一般來說,404.1 錯誤只會出現在具有多個 IP 地址的計算機上。如果在特定 IP 地址/埠組合上收到客戶請求,而且在特定的埠上 IP 地址並沒有設置為偵聽,則 IIS 將返回 404.1 HTTP 錯誤。例如,如果一台計算機有兩個 IP 地址,而只將其中一個 IP 地址配置為在埠 80 上偵聽,則其它 IP 地址從埠 80 收到的任何請求都將導致 IIS 返回 404.1 錯誤。只應在服務級設置這一錯誤,因為只有當伺服器上使用多個 IP 地址時它才返回給客戶。 錯誤代碼:404b 404b錯誤是由於無法找到文件而造成的,通常是由於正在搜索的網頁可能已經刪除、更名或暫時不可用。 錯誤代碼:405 405錯誤是由於資源被禁止而導致的網頁地址不正確,因此要尋找的網頁無法顯示。 錯誤代碼:406 406錯誤是由於瀏覽器無法打開正在尋找的資源而導致的錯誤。 錯誤代碼:407 407錯誤是由於代理伺服器必須先驗證身份,然後才處理請求。 錯誤代碼:410 410錯誤要尋找的網頁已被永久刪除而導致的,這意味著資源永遠無法使用。 錯誤代碼:412 412錯誤是由於要查看的網頁設置有先決條件,因此該請求無法完成。一般是網頁中有一個或多個請求標題欄位中具有先決條件,這些欄位經伺服器測試後被認為是"FALSE"。客戶端為當前資源的 meta 信息(頭文件欄位數據)設置了先決條件,以便防止請求的方法被用於指定資源外的其他資源。 錯誤代碼:414 414錯誤是由於請求的 URI 太長,伺服器拒絕處理請求而造成的。一般的可能性有: 1)客戶端錯誤地將 POST 請求轉換為帶有長查詢信息的 GET 請求。 2)或者是客戶端遇到重定向問題(例如,重定向 URL 的前綴指向自身的後綴)。 3)伺服器遭到客戶端的攻擊,該客戶端試圖利用那些使用定長緩沖來讀取或控制請求 URI 的伺服器上的安全漏洞。 錯誤代碼:500 500錯誤是由於內部伺服器錯誤造成的。 錯誤代碼:500.11 500.11錯誤是由於伺服器關閉而造成的資源無法訪問,Web 站點關閉期間無法處理請求。 錯誤代碼:500.12 500.12錯誤是由於應用程序重新啟動而造成的資源暫時無法訪問,Web站點重新啟動期間無法處理請求。 錯誤代碼:500.13 500.13錯誤是由於伺服器太忙而造成的,此時無法處理請求。通訊量超出 Web 站點的能力。 錯誤代碼:500.14 500.14錯誤是由於應用程序無效而造成的,部分 Web 站點不可用。Web 站點應用程序配置存在問題,無法處理請求。 錯誤代碼:500.15 500.15錯誤是由於請求了不不允許請求的 global.asa而造成的,你可以編輯"地址"欄中的網址,刪除 global.asa,然後按 Enter。來解決這個問題。 錯誤代碼:502 502錯誤是由於網關錯誤而造成的,當作為網關或代理的伺服器與上層內容伺服器聯絡時,收到無效的響應時就會出現502錯誤。 錯誤代碼:500-100.asp 500-100.asp錯誤是指ASP錯誤,默認情況下,"默認 Web 站點"及其所有應用程序都將 ASP 錯誤進程傳送到 500-100.asp 文件;但是,用戶創建的任何新 Web 站點或其應用程序都將 500.100 錯誤進程傳送到默認的(不是自定義的)錯誤文件。如果要為 .asp 文件開發附加的錯誤進程,可以將 500-100 錯誤映射到 .asp 文件,或者創建自己的錯誤進程 .asp 文件。 500-100.asp 文件處理 .asp 文件編譯和運行期間發生的任何錯誤。當發生 ASP 錯誤時,IIS 返回 500-100.asp 文件並附帶詳細的錯誤信息,如發生錯誤的行號和對錯誤的描述。 如果文件 500-100.asp 本身包含 ASP 錯誤,ASP 就不會返回另一個 500-100.asp 文件;這樣,報告錯誤時就好象根本沒有與 500-100 錯誤對應的自定義錯誤文件似的。 如果錯誤處理文件(默認是 500-100.asp)包含運行時錯誤,則只顯示此錯誤,而不考慮請求的 .asp 文件中的錯誤類型。如果錯誤處理文件有預處理和編輯錯誤,則在瀏覽器中顯示這兩種錯誤(即,顯示 500-100.asp 文件中的錯誤和請求的 .asp 文件中的錯誤)。 4.3. 枚舉聲明 java.lang.Thread.State 線程有以下幾種狀態:NEW(已創建但尚未開始執行)、RUNNABLE(正在Java虛擬機中執行)、BLOCKED(阻塞中:正等待獲得監控鎖)、WAITING(等待:無條件等候其他線程執行完畢,直到接收到喚醒通知)、TIMED_WAITING(限時等待:等候其他線程執行完畢,直到接收到喚醒通知或等待時間超過了時限)、TERMINATED(終止:線程已經退出)。4.4. 異常 java.lang.ArithmeticException 算術條件異常。譬如:整數除零等。 java.lang. 數組索引越界異常。當對數組的索引值為負數或大於等於數組大小時拋出。 java.lang.ArrayStoreException 數組存儲異常。當向數組中存放非數組聲明類型對象時拋出。 java.lang.ClassCastException 類造型異常。假設有類A和B(A不是B的父類或子類),O是A的實例,那麼當強制將O構造為類B的實例時拋出該異常。該異常經常被稱為強制類型轉換異常。 java.lang.ClassNotFoundException 找不到類異常。當應用試圖根據字元串形式的類名構造類,而在遍歷CLASSPAH之後找不到對應名稱的class文件時,拋出該異常。 java.lang.CloneNotSupportedException 不支持克隆異常。當沒有實現Cloneable介面或者不支持克隆方法時,調用其clone()方法則拋出該異常。 java.lang. 枚舉常量不存在異常。當應用試圖通過名稱和枚舉類型訪問一個枚舉對象,但該枚舉對象並不包含常量時,拋出該異常。 java.lang.Exception 根異常。用以描述應用程序希望捕獲的情況。 java.lang.IllegalAccessException 違法的訪問異常。當應用試圖通過反射方式創建某個類的實例、訪問該類屬性、調用該類方法,而當時又無法訪問類的、屬性的、方法的或構造方法的定義時拋出該異常。 java.lang.IllegalMonitorStateException 違法的監控狀態異常。當某個線程試圖等待一個自己並不擁有的對象(O)的監控器或者通知其他線程等待該對象(O)的監控器時,拋出該異常。 java.lang.IllegalStateException 違法的狀態異常。當在Java環境和應用尚未處於某個方法的合法調用狀態,而調用了該方法時,拋出該異常。 java.lang.IllegalThreadStateException 違法的線程狀態異常。當縣城尚未處於某個方法的合法調用狀態,而調用了該方法時,拋出異常。 java.lang.IndexOutOfBoundsException 索引越界異常。當訪問某個序列的索引值小於0或大於等於序列大小時,拋出該異常。 java.lang.InstantiationException 實例化異常。當試圖通過newInstance()方法創建某個類的實例,而該類是一個抽象類或介面時,拋出該異常。 java.lang.InterruptedException 被中止異常。當某個線程處於長時間的等待、休眠或其他暫停狀態,而此時其他的線程通過Thread的interrupt方法終止該線程時拋出該異常。 java.lang.NegativeArraySizeException 數組大小為負值異常。當使用負數大小值創建數組時拋出該異常。 java.lang.NoSuchFieldException 屬性不存在異常。當訪問某個類的不存在的屬性時拋出該異常。 java.lang.NoSuchMethodException 方法不存在異常。當訪問某個類的不存在的方法時拋出該異常。 java.lang.NullPointerException 空指針異常。當應用試圖在要求使用對象的地方使用了null時,拋出該異常。譬如:調用null對象的實例方法、訪問null對象的屬性、計算null對象的長度、使用throw語句拋出null等等。 java.lang.NumberFormatException 數字格式異常。當試圖將一個String轉換為指定的數字類型,而該字元串確不滿足數字類型要求的格式時,拋出該異常。 java.lang.RuntimeException 運行時異常。是所有Java虛擬機正常操作期間可以被拋出的異常的父類。 java.lang.SecurityException 安全異常。由安全管理器拋出,用於指示違反安全情況的異常。 java.lang. 字元串索引越界異常。當使用索引值訪問某個字元串中的字元,而該索引值小於0或大於等於序列大小時,拋出該異常。 java.lang.TypeNotPresentException 類型不存在異常。當應用試圖以某個類型名稱的字元串表達方式訪問該類型,但是根據給定的名稱又找不到該類型是拋出該異常。該異常與ClassNotFoundException的區別在於該異常是unchecked(不被檢查)異常,而ClassNotFoundException是checked(被檢查)異常。 java.lang.UnsupportedOperationException 不支持的方法異常。指明請求的方法不被支持情況的異常。

閱讀全文

與Java編譯一個程序出現異常相關的資料

熱點內容
安卓手機連車載的叫什麼 瀏覽:223
怎麼讓自己的手機鍵盤變得好看app 瀏覽:53
能看qq的文件夾 瀏覽:515
android二維碼生成代碼 瀏覽:567
焦爐氣壓縮機 瀏覽:402
imap接收郵件伺服器地址 瀏覽:291
小喬肖恩解壓密碼 瀏覽:645
php網頁網盤源碼 瀏覽:181
簽到任務源碼 瀏覽:814
母親節的文案怎麼寫app 瀏覽:984
加密協議aes找不到 瀏覽:250
java伺服器端開發源碼 瀏覽:551
編譯器編譯運行快捷鍵 瀏覽:333
住房app怎麼快速選房 瀏覽:174
怎麼在電腦上編譯成功 瀏覽:214
單片機可調時鍾設計方案 瀏覽:192
qq文件夾密碼忘記怎麼找回 瀏覽:683
php擴展插件 瀏覽:608
解壓視頻廁所抽紙 瀏覽:952
app減脂怎麼用 瀏覽:452