import java.text.SimpleDateFormat;
發(fā)展壯大離不開(kāi)廣大客戶長(zhǎng)期以來(lái)的信賴與支持,我們將始終秉承“誠(chéng)信為本、服務(wù)至上”的服務(wù)理念,堅(jiān)持“二合一”的優(yōu)良服務(wù)模式,真誠(chéng)服務(wù)每家企業(yè),認(rèn)真做好每個(gè)細(xì)節(jié),不斷完善自我,成就企業(yè),實(shí)現(xiàn)共贏。行業(yè)涉及成都門(mén)簾等,在網(wǎng)站建設(shè)公司、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、WAP手機(jī)網(wǎng)站、VI設(shè)計(jì)、軟件開(kāi)發(fā)等項(xiàng)目上具有豐富的設(shè)計(jì)經(jīng)驗(yàn)。
import java.util.Date;
public class Test {
public static void main(String[] args) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(new Date()));
} catch (Exception e) {
System.out.println("Error!!");
e.printStackTrace();
} finally {
System.out.println("Date Transform End.");
}
}
}
①首先執(zhí)行try中的代碼。
②如果try中的代碼執(zhí)行過(guò)程中發(fā)生異常,會(huì)立即轉(zhuǎn)入catch中,執(zhí)行catch中的代碼。
③如果try中執(zhí)行完畢,未發(fā)生異常,則不執(zhí)行catch中的代碼。
④最后執(zhí)行finally中的代碼。無(wú)論異常是否發(fā)后生。
以下是一個(gè)符合您要求的Java程序示例:
javaCopy codeclass MyException extends Exception { public MyException() { super();
} public MyException(String message) { super(message);
}
}class UsingMyException { public void f() throws MyException {
System.out.println("拋出異常MyException 從 f()方法"); throw new MyException();
} public void g() throws MyException {
System.out.println("拋出異常MyException 從 g()方法"); throw new MyException("從g()方法中拋出異常");
}
}public class TestException { public static void main(String[] args) { UsingMyException obj = new UsingMyException(); try {
obj.f();
} catch (MyException e) {
System.out.println(e.getMessage());
} try {
obj.g();
} catch (MyException e) {
System.out.println(e.getMessage());
} finally {
System.out.println("最終結(jié)束");
}
}
}
在這個(gè)程序中,我們首先定義了一個(gè)MyException類(lèi),它繼承自Exception類(lèi),并具有無(wú)參和一個(gè)字符串參數(shù)的構(gòu)造函數(shù)。接下來(lái),我們定義了一個(gè)普通類(lèi)UsingMyException,并在其中定義了兩個(gè)方法f()和g(),這兩個(gè)方法都拋出MyException異常并輸出相應(yīng)的信息。最后,我們編寫(xiě)了一個(gè)測(cè)試類(lèi)TestException,在其中調(diào)用了UsingMyException類(lèi)的f()和g()方法,并使用try-catch語(yǔ)句捕獲了拋出的異常,并輸出相應(yīng)的信息。我們還使用了finally關(guān)鍵字來(lái)確保在程序結(jié)束時(shí)執(zhí)行某些特定的代碼。
當(dāng)您運(yùn)行這個(gè)程序時(shí),它將在控制臺(tái)上輸出符合您要求的內(nèi)容。
Java通過(guò)面向?qū)ο蟮姆椒ㄟM(jìn)行異常處理,把各種不同的異常進(jìn)行分類(lèi),并提供了良好的接口。
在Java中,每個(gè)異常都是一個(gè)對(duì)象,它是Throwable類(lèi)或其子類(lèi)的實(shí)例。當(dāng)一個(gè)方法出現(xiàn)異常后便拋出一個(gè)異常對(duì)象,該對(duì)象中包含有異常信息,調(diào)用這個(gè)對(duì)象的方法可以捕獲到這個(gè)異常并可以對(duì)其進(jìn)行處理。
Java的異常處理是通過(guò)5個(gè)關(guān)鍵詞來(lái)實(shí)現(xiàn)的:try、catch、throw、throws和finally。一般情況下是用try來(lái)執(zhí)行一段程序,如果系統(tǒng)會(huì)拋出(throw)一個(gè)異常對(duì)象,可以通過(guò)它的類(lèi)型來(lái)捕獲(catch)它,或通過(guò)總是執(zhí)行代碼塊(finally)來(lái)處理;try用來(lái)指定一塊預(yù)防所有異常的程序;
catch子句緊跟在try塊后面,用來(lái)指定你想要捕獲的異常的類(lèi)型;
throw語(yǔ)句用來(lái)明確地拋出一個(gè)異常;
throws用來(lái)聲明一個(gè)方法可能拋出的各種異常(當(dāng)然聲明異常時(shí)允許無(wú)病呻吟);
finally為確保一段代碼不管發(fā)生什么異常狀況都要被執(zhí)行。
Java是一門(mén)面向?qū)ο缶幊陶Z(yǔ)言,不僅吸收了C++語(yǔ)言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語(yǔ)言具有功能強(qiáng)大和簡(jiǎn)單易用兩個(gè)特征。Java語(yǔ)言作為靜態(tài)面向?qū)ο缶幊陶Z(yǔ)言的代表,極好地實(shí)現(xiàn)了面向?qū)ο罄碚?,允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程
import java.util.Scanner;
public class ExceptionDemo {
public static void main(String[] args) {
double op1,op2,r;
Scanner sc=new Scanner(System.in);
System.out.println("請(qǐng)輸入兩個(gè)double型的參數(shù)");
op1=sc.nextDouble();
op2=sc.nextDouble();
try {
r=div(op1,op2);
}
catch(MyException ex) {
System.out.println(ex.getMessage());
do {
System.out.println("除數(shù)為0,請(qǐng)重新輸入操作數(shù)2的值!");
op2=op2=sc.nextDouble();
}while(0==op2);
}
finally {
System.out.println(""+op1+"/"+op2+"的結(jié)果是:"+(op1/op2));
}
sc.close();
}
static double div(double op1,double op2) throws MyException {
if(0==op2) {
throw new MyException("自定義異常,除數(shù)為0異常");
}
return op1/op2;
}
}
class MyException extends Exception {
MyException(String msg) {
super(msg);
}
}