idea部署專案步驟以及bug出現的原因以及解決方案,類報紅,亂碼,404,500等
阿新 • • 發佈:2020-12-15
解決bug
專案無法正常編譯 1、jdk報錯, String Integer java自帶類報錯得,jdk版本不對應,jdk沒有配好 重新更換 jdk版本 2、jar報錯,沒見過得類,屬於外部jar沒有載入, 一種是tomcat相關得,通過依賴直接新增; lib資料夾中得jar,需要手動匯入 3、將各個資料夾,設定成對應得格式 java檔案放在藍色得資料夾中,通過make dir as ----> Sources root 資原始檔 放在 五條槓得資料夾下,通過 make dir as ---> Resources root web頁面相關內容,放在藍點資料夾下,通過配置專案得 / 所代表得位置 4、專案中存在亂碼: 1. 專案中,類中得中文出現亂碼; 你讀取得編碼 和 編寫時得編碼用得不一致;專案右下腳有一個File encoding 將檔案編碼設定為其他型別的,然後convert,重新載入專案頁面; 2. 資料庫中,顯示的中文出現亂碼; 1、建立資料庫使用的編碼格式有問題,需要修改資料庫中,資料庫的編碼、資料表的編碼; 2、插入的資料編碼問題,使用記事本,將正確編碼格式的檔案複製全部內容,貼上到查詢中,進行執行; 3. 頁面中,顯示的中文出現亂碼; 1、伺服器中傳遞過來的資料亂碼 request:request.setCaracterEncoding("utf-8"); response:設定展示給頁面的資料是 utf-8格式的 response.setContentType("text/html;charset=utf-8"); 2、從資料庫中讀取的資料,就是亂碼的 設定資料庫連線的編碼格式,jdbc:mysql://localhost:3306/db2?characterEncoding=utf8 3、頁面展示的資料是錯誤的編碼格式,導致亂碼 通過瀏覽器右鍵,設定當前頁面的載入編碼格式 專案執行問題 1、404 找不到頁面, servlet + jsp :需要檢視web.xml 看路徑和類是否相互繫結 @WebServlet("/login") ssm 專案:需要檢視springmvc.xml 配置檔案 中間有一個檢視解析器 規定了前後綴,檢視這一個; 專案打包問題,將整個打包在伺服器釋出,tomcat ,idea需要配置路徑 2、500伺服器錯誤, 一般會有Exception異常產生;java程式設計師 解決異常;
Bug
Java中的異常 Throwable 1、錯誤 Error 程式中無法自己解決,需要程式設計師去解決; 是程式設計師無法通過程式去控制的;比如,專案建立物件,開闢記憶體空間,一旦把記憶體全部佔滿,此時會出現錯誤,記憶體溢位錯誤; 2、異常 Exception 程式中可以自己解決的問題,可以提前預知到,然後給出解決方法; if( 出現異常 boolean ){... }else{... } 寫法大致相同 try{ }catch( 異常 ){ } 異常就是程式中,出現的各種問題: .java -javac-> .class -java-> 執行 編譯異常: checked Exception javac階段出現的異常:編譯期異常; 整合開發軟體,會自動編譯.java檔案,當寫完之後自動編譯成.class檔案, 兩種內容全部都是編譯期的異常: IOException IO流 Input/Output方向 如果沒有當前路徑,所要做的操作 SQLException 資料庫 並不知道資料庫能不能連線成功 執行異常: runtime Exception java階段出現的異常:執行期異常 NullPointerException: 面向物件程式設計,使用一個空的物件去做事,報此異常; ClassCastException:類轉換異常,
三、java程式中幾種常見的異常以及出現此異常的原因 1、java.lang.NullpointerException(空指標異常) 原因:這個異常經常遇到,異常的原因是程式中有空指標,即程式中呼叫了未經初始化的物件或者是不存在的物件。 經常出現在建立物件,呼叫陣列這些程式碼中,比如物件未經初始化,或者圖片建立時的路徑錯誤等等。對陣列程式碼 中出現空指標,是把陣列的初始化和陣列元素的初始化搞混淆了。陣列的初始化是對陣列分配空間,而陣列元素的 初始化,是給陣列中的元素賦初始值 2、 java.lang.ClassNotFoundException(指定的類不存在) 原因:當試圖將一個String型別資料轉換為指定的數字型別,但該字串不滿足數值型資料的要求時,就丟擲這個異 常。例如將String型別的資料"123456"轉換為數值型資料時,是可以轉換的的。但是如果String型別的資料中包含了 非數字型的字元,如123*56,此時轉換為數值型時就會出現異常。系統就會捕捉到這個異常,並進行處理 3、java.lang.ClassNotFoundExceptio(指定的類不存在) 原因:是因為類的名稱和路徑不正確,通常都是程式試圖通過字串來載入某個類的時候可能會引發異常。例如: 呼叫Class.forName()、或者呼叫ClassLoad的finaSystemClass()、或者是LoadClass()時出現異常 4、java.lang.IndexOutOfBoundsException(陣列下標越界異常) 原因:檢視程式中呼叫的陣列或者字串的下標值是不是超出了陣列的範圍,一般來說,顯示呼叫陣列不太容易出這 樣的錯,但隱式呼叫就有可能出錯了,還有一種情況,是程式中定義的陣列的長度是通過某些特定方法決定的,不是 事先宣告的,這個時候可以先檢視一下陣列的length,以免出現這個異常 5、java.lang.IllegalArgumentException(方法的引數錯誤) 例如g.setColor(int red,int green,int blue)這個方法中的三個值,如果有超過255的會出現這個異常,如果程式中存在這個異常,就要去檢查一下方法呼叫中的引數傳遞或引數值是不是有錯 6、java.lang.IllegalAccessException(沒有訪問許可權) 當程式要呼叫一個類,但當前的方法即沒有對該類的訪問許可權便會出現這個異常。如果程式中用了Package的情況下 有可能出現這個異常 7、java.lang.ArithmeticException(數學運算異常) 當數學運算中出現了除以零這樣的運算就會出這樣的異常。 8、java.lang.ClassCastException(資料型別轉換異常) 當試圖將對某個物件強制執行向下轉換,但該物件又不可轉換或又不可轉換為其子類的例項時將出現該異常 9、 java.lang.FileNotFoundException(檔案未找到異常) 當程式開啟一個不存在的檔案來進行讀寫時將會引發該異常。該異常由FileInputStream,FileOutputStream, RandomAccessFile的構造器宣告丟擲,即使被操作的檔案存在,但是由於某些原因不可訪問,比如開啟一個只有只讀許可權的檔案並向其中寫入資料,以上構造方法依然會引發異常 10、java.lang.ArrayStoreException(陣列儲存異常) 當試圖將型別為不相容型別的物件存入一個Object[]陣列時將引發異常 11、java.lang.NoSuchMethodException(方法不存在異常) 當程式試圖通過反射來建立物件,訪問(修改或讀取)某個方法,但是該方法不存在就會引發異常。 12、 java.lang.EOFException(檔案已結束異常) 當程式在輸入的過程中遇到檔案或流的結尾時,引發異常。因此該異常用於檢查是否達到檔案或流的結尾 13、java.lang.InstantiationException(例項化異常) 當試圖通過Class的newInstance()方法建立某個類的例項,但程式無法通過該構造器來建立該物件時引發。Class物件表示一個抽象類,介面,陣列類,基本型別 。該Class表示的類沒有對應的構造器。 14、java.lang.InterruptedException(被中止異常) 當某個執行緒處於長時間的等待、休眠或其他暫停狀態,而此時其他的執行緒通過Thread的interrupt方法終止該執行緒時丟擲該異常。 15、java.lang.CloneNotSupportedException (不支援克隆異常) 當沒有實現Cloneable介面或者不支援克隆方法時,呼叫其clone()方法則丟擲該異常 16、java.lang.OutOfMemoryException (記憶體不足錯誤) 當可用記憶體不足以讓Java虛擬機器分配給一個物件時丟擲該錯誤 17、java.lang.NoClassDefFoundException (未找到類定義錯誤) 當Java虛擬機器或者類裝載器試圖例項化某個類,而找不到該類的定義時丟擲該錯誤