十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
public void MyException extends Exception{
成都創(chuàng)新互聯(lián)公司于2013年開(kāi)始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元南雄做網(wǎng)站,已為上家服務(wù),為南雄各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
public MyExceprion(){
System.out.println("自定義異常");
}
}
public class Exam{
public static void mul() throws MyException{
if(自己寫條件){
throw new MyException();
}
}
}
這個(gè)應(yīng)該能看懂吧,我只是寫了個(gè)結(jié)構(gòu)沒(méi)寫完整程序的,你看懂這個(gè)就行,定義一個(gè)自定義異常,然后在你需要的地方拋出異常,在主方法中調(diào)用方法的時(shí)候達(dá)到一定條件就會(huì)拋出異常
一、第一種定義方式,繼承Exception類
public class MyFirstException extends Exception {
public MyFirstException() {
super();
}
public MyFirstException(String msg) {
super(msg);
}
public MyFirstException(String msg, Throwable cause) {
super(msg, cause);
}
public MyFirstException(Throwable cause) {
super(cause);
}
//自定義異常類的主要作用是區(qū)分異常發(fā)生的位置,當(dāng)用戶遇到異常時(shí),
//根據(jù)異常名就可以知道哪里有異常,根據(jù)異常提示信息進(jìn)行修改。
}
二、 第二種定義方式:繼承Throwable 類
public class MySecondException extends Throwable {
public MySecondException() {
super();
}
public MySecondException(String msg) {
super(msg);
}
public MySecondException(String msg, Throwable cause) {
super(msg, cause);
}
public MySecondException(Throwable cause) {
super(cause);
}
}
三、測(cè)試
/**
* 自定義異常類的使用
* @author new
*
*/
public class TestMyException {
public static void firstException() throws MyFirstException{
throw new MyFirstException("\"firstException()\" method occurs an exception!");
}
public static void secondException() throws MySecondException{
throw new MySecondException("\"secondException()\" method occurs an exception!");
}
public static void main(String[] args) {
try {
TestMyException.firstException();
TestMyException.secondException();
} catch (MyFirstException e1){
System.out.println("Exception: " + e1.getMessage());
e1.printStackTrace();
} catch (MySecondException e2){
System.out.println("Exception: " + e2.getMessage());
e2.printStackTrace();
}
//當(dāng)一個(gè)try塊后面跟著多個(gè)catch塊時(shí),如果發(fā)生的異常匹配第一個(gè)catch塊的參數(shù),便將異常處理權(quán)利交給第一個(gè)catch塊。
//如果發(fā)生的異常與第一個(gè)catch塊不匹配,便看是否與第二個(gè)catch塊匹配,依次下去,如果到最后依然無(wú)法匹配該異常,
//便需要在方法聲明中添加一條throw語(yǔ)句,將該異常拋出。
//因此,在有多個(gè)catch塊,而且每次處理的異常類型具有繼承關(guān)系時(shí),應(yīng)該首先catch子類異常,再catch父類異常。
//比如,如果MySecondException繼承MyFirstException,那么最好將catch (MySecondException e2)放在前面,
//把catch (MyFirstException e1)放在后面。
}
首先自定義一個(gè)異常類 public class ActionException extends Exception{ public String returnMessage; public ActionException(String returnMessage){ this.returnMessage = returnMessage; } public String getReturnMessage(){ return this.returnMessage; } 代碼中如果用到這個(gè)自定義的異常類,這里的代碼只是做了個(gè)演示 private void validate(int a,int b)throws ActionException{ if(ab){ throw new ActionException("a b"); } if(ab){ throw new ActionException("a b"); } } 業(yè)務(wù)邏輯代碼中 public String process(){ try{ validate(a,b); }catch(ActionException ae){ System.out.println(ae.getReturnMessage()); } }