java拋異常
A. java異常的拋出
這幾個異常的理解我簡單說下:卜雹
public class TestException extends Exception 這個不用管,只是自定義一個異常而已棗則(這種定義在開發中經常用到,因為java本身的異常經常不能更明確開發者的意圖)
class B中的第2行的method2拋出TestException異常,表示如果有誰調用method2方法,將有可能拋出TestException異常,所以調用method2方法的代碼塊要用try catch包起來,並捕獲TestException異常(當然有另一種可能可以不捕獲TestException異常,但此代碼塊所在的方法必須將此異常向外傳遞,也就是繼續throws TestException)
在class A中,因為Method1方法中調用了B的method2方法,所以它catch了TestException異常(上面我還提到了另一種處理方法),而在捕獲到的異常處理代碼內,class A使用了產生另一種異常的方式將異常向外傳遞(類A第8行),而外部沒有處理RuntimeException,所以此程序執行到拋出此異常後的代碼將被中斷(假型岩帆設後面還有代碼),RuntimeException將會被列印到屏幕上
B. java查不到數據拋異常會怎麼樣
java 捕獲和拋出異常
異常通常是程序運行時出現的問題和錯誤。如:客戶輸入數據的格式,讀取的文件是否存在,網路是否保持通暢等。java程序在執行過螞頃程中發生的異常事件分為:異常和錯誤
異常:(Exception)
異常指程序運行過程中出現的非正常現象。可能遇到的輕微錯誤,可以寫代碼處理異常並繼續繼承執行,不應讓程序中斷。
錯誤:(Error)
錯誤事件的發生通常會阻止程序正常運行。對於java虛擬機無法解決的嚴重問題,如jvm系統內部錯誤,資源耗盡等情況,一般不編寫針對性的代碼進行處理。
對於被認為是不能恢復的嚴重錯誤,不應該拋出,而應該讓程序中斷。
錯誤與異常最大的區別是錯誤往往比異常嚴重,發生了錯誤,一般不能在應用程序中捕獲處理,程序只能非正常終止運行。
異常的簡單分類:
(1):檢查性異常
最具有代表性的是用戶錯誤或者是問題引起的而異常,這是程序員無法悶辯陸預見的。例如要打開一個不存在的文件時,異常就發生了,這些異常在編譯時不能被簡單的忽略。
(2):運行時異常
它是可能被程序員避免的異常,與檢查性異常相反,運行時可以在編譯時被忽略。
(3):錯誤
錯誤不是異常,而是脫離程序員控制的問題,錯誤在代碼中通常被忽略。例如當棧溢出時,一個錯誤就發生了,灶燃他們在編譯中也查不到。
java把異常當做對象來處理,並定義一個基類java.lang.Throwable作為所有異常的超類
C. java中怎麼拋異常和接收異常
拋出異常 就是使用 throw關鍵字 除了拋出常見的默認異常外,主要是用於拋出自定義異常,關於自定義異常就是繼承了Exception類的子類接受異常是指捕獲異常嗎,似乎沒有聽說過接受異常這種說法,捕獲異常的話主要是用 try{} catch(){} finally{} 結構try {}數據塊中 是預期可能出現異常的代碼catch 的 attribute 是指定希望捕獲的異常,比如catch(NullPointerException e )就是只測試並捕獲空指針異常,再如catch(Exception e) 就可以捕獲所有繼承了Exception的子類,{}則是捕獲該異常後的處理代碼,比如輸出錯誤信息,etc 實際應用中可以有多個catch 用來區分不同的異常然後運行不同的代碼進行處理finally{}則是無論是否捕獲異常,該代碼都會執行 希望對你有幫助
D. JAVA如何拋出異常
首先如果拋出jdk已簡物有的異常,比如說拋出一個空指針異常,就這樣:
throw new NullPointerException();這算拋出了一攔陸液個空指針異常
throw new NullPointerException(「也可以在這里加一些異常信息描述」);
然後如果你想拋出一個自己定義好的異常,那麼首先要聲明一個異常類,
然後拋出的方法一樣。悉緩
E. java自定義異常拋出
分類: 電腦/網路 >> 程序設計 >> 其他編程茄攜語言
問題描述:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
自定義異常類
class NumException extends Exception{
public String toString(){
return "輸入的值太小";
}
public String shuru(){
return "請輸入數字";
}
}
class jisuanqi extends JFrame implements ActionListener,ItemListener{
JRadioButton rz;
JRadioButton rm;
ButtonGroup bg;
JTextField txt;
JButton btnj;
String msg;
jisuanqi(){
super("計算器");
rz=new JRadioButton("周長");
rm=new JRadioButton("面積");
bg=new ButtonGroup();
txt=new JTextField();
btnj=new JButton("計算");
msg="";
this.getContentPane().setLayout(new GridLayout(2,2));
bg.add(rz);
bg.add(rm);
this.getContentPane().add(rz);
this.getContentPane().add(rm);
this.getContentPane().add(txt);
this.getContentPane().add(btnj);
this.setSize(200,200);
rz.addItemListener(this);
rm.addItemListener(this);
btnj.addActionListener(this);
}
實現介面
public void actionPerformed(ActionEvent e) throws NumException{聲明異常
if (Double.parseDouble(txt.getText())<=0){
throw new NumException();拋出異常
}
if (msg.equals("周長")){
txt.setText(""+(3.14*2*Double.parseDouble(txt.getText())));
}
if (msg.equals("面積")){
txt.setText(""+3.14*(Double.parseDouble(txt.getText())*Double.parseDouble(txt.getText())));
}
}
實現介面
public void itemStateChanged(ItemEvent e){
if (e.getSource()==rz){
msg="周長";
}
if (e.getSource()==rm){
msg="面積";
}
}
public static void main(String args[]){
try{
jisuanqi js=new jisuanqi();
js.setVisible(true);
}
catch(NumException ex){
System.out.println(ex);
}
}
}
編譯時出現:
C:\Documents and Settings\Administrator\桌面\新建文件夾茄納激\jisaunqi.java:45: jisuanqi 中顫襪的 actionPerformed(java.awt.event.ActionEvent) 無法實現 java.awt.event.ActionListener 中的 actionPerformed(java.awt.event.ActionEvent);被覆蓋的方法不拋出 NumException
解析:
這段代碼有問題:
實現介面
public void actionPerformed(ActionEvent e) throws NumException{聲明異常
public void actionPerformed(ActionEvent e)不應該拋出異常, ActionListener介面函數沒有異常拋出
一種可能的解決方法是把判斷移到另外一個函數中,然後拋出異常,在actionPerformed中捕獲或者在外面捕獲
F. Java拋異常是什麼意思
所謂異常,就是在程序的功能裡面涉及到一些你不打算做的工作或者你沒辦法控制的情況,但是又不能不處理
比如,現在寫一個讀配置文件的程序,讀出配置文件的數據給另外一個程序用。在程序的用戶的電腦上,這個配侍租置文件是不是存在,你沒法控制,你又不打算附帶做一個生成這個配置文件的功能。那麼如果碰到它不存在李兄的情況,這就是個異常。
拋異常,就是寫一個功能處理這老擾兆個異常,然後把出現異常的那個代碼點轉到你的異常處理程序那邊去。
G. 常見的java異常有哪些都是什麼意思
1、ArithmeticException - 算術運算中,被0除或模除。
2、 - 數組越界訪問。
3、ArrayStoreException - 數據存儲異常,寫數組操作時,對象或數據類型不兼容。
4、ClassCastException - 類型轉換異常。
5、IllegalArgumentException - 方法的參數無效。
6、IllegalThreadStateException - 試圖非法改變線程狀態,比方說試圖啟動一已經運行的線程。
7、NullPointerException - 試圖訪問一空對象的變數、方法或空數組的元素
8、NumberFormatException - 數據格式異常,試圖把一字元串非法轉換成數值(或相反)。
9、SecurityException - 如果Applet試圖執行一被WWW瀏覽器安全設置所禁止的操作。
10、 - 如改變了某一類定義,卻沒有重新編譯其他引用了這個類的對象。如某一成員變數的聲明被從靜態改變為非靜態,但其他引用了這個變數的類卻沒有重新編譯,或者相反。
11、OutOfMemoryException - 內存不足,通常發生於創建對象之時。
12、NoClassDefFoundException - JAVA運行時系統找不到所引用的類。
13、IncompatibleTypeException - 試圖實例化一個介面,Java運行時系統將拋出這個異常。
14、UnsatisfiedLinkException - 如果所需調用的方法是C函數,但Java運行時系統卻無法連接這個函數。
15、InternalException - 系統內部故障所導致的異常情況,可能是因為Java運行時系統本身的原因。如果發現一可重現的InternalException,可以直接給Sun公司發電郵[email protected]。
H. JAVA中Callable的call方法拋出的異常會拋到那裡
調用的的這個類就要負責接受拋出的異常現則處理異常或者繼續拋出。
Callable介面實際上是屬於Executor框架中的功能類,Callable介面與Runnable介面的功能類似,但提供了比Runnable更加強大的功能。
Callable可以在任務結束的時候提供一個返回值,Runnable無法提供這個功能,Callable的call方法分可以拋出異常,而Runnable的run方法不能拋出異常。
(8)java拋異常擴展閱讀:
注意事項:
對於從事C和C++程序開發的開發人員來說,在內存管理領域,他們既是擁有最高權力的皇帝,又是從事最基礎工作的勞動人民—既擁有每一個對象的所有權,又擔負著每一個對象生命開始到終結的維護責任。
對於Java程序員來說,在虛擬機的自動內存管理機制的幫助下,不再需要為每一個new操作大讓中去寫配對的delete/free代碼,而且不容易出現內存泄漏和內存溢出問題。
因為Java程序員把內存控制的權力交給了Java虛擬機,一旦出現內滑渣存泄漏和溢出方面的問題,如果不了滾山解虛擬機是怎樣使用內存的,那排查錯誤將會成為一項異常艱難的工作。
I. 在java語言中哪個關鍵字用於在方法上聲明拋出異常
java當中,處理異常的方式主要有:try...catch...finally、throw、throws。x0dx0a1、try...catch...finally:try語句塊灶談游中是可能出現異常的代碼塊,catch語句塊中是捕獲的異常處理(可以包隱銷含多個catch語句塊),finally是侍嘩任何情況下都回輸出的提示。x0dx0a2、對於處理不了的異常或者要轉型的異常,在方法的聲明處通過throws語句拋出異常x0dx0a3、throw用來拋出一個異常,在方法體內。語法格式為:throw 異常對象。x0dx0athrows用來聲明方法可能會拋出什麼異常,在方法名後,語法格式為:throws 異常類型1,異常類型2...異常類型n
J. java 中什麼時候拋異常,什麼時候try/catch謝謝!
這個沒有特別的規定,滑襪畝通常根據你的業務而定,
一般建議如下:
1、在通用的方法里,不好穗要try去捕獲錯誤,而是直接拋出異常給調用層處理
2、用戶訪問界面處理掉所有可能的異常,並記錄詳細錯誤日誌,然後返回友好的錯誤界面給用戶,信森不要拋異常給用戶,不友好