新聞中心
本文章向大家介紹如何在java中使用catch處理異常,主要包括如何在java中使用catch處理異常的使用實(shí)例、應(yīng)用技巧、基本知識點(diǎn)總結(jié)和需要注意事項(xiàng),具有一定的參考價值,需要的朋友可以參考一下。
Java的特點(diǎn)有哪些
Java的特點(diǎn)有哪些 1.Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,實(shí)現(xiàn)了面向?qū)ο罄碚?,允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。 2.Java具有簡單性、面向?qū)ο?、分布式、安全性、平臺獨(dú)立與可移植性、動態(tài)性等特點(diǎn)。 3.使用Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等。
import java.util.UUID; public class Test { public static void main(String[] args) { try { int i = 2/0; } catch (Exception e) { e.printStackTrace(); } try { System.out.println("try2"); } catch (Exception e) { // TODO: handle exception } // int i = 2/0; // System.out.println("helo"); } }
打印結(jié)果:
java.lang.ArithmeticException: / by zero at Test.main(Test.java:8)
try2
import java.util.UUID; public class Test { public static void main(String[] args) { // try { // int i = 2/0; // } catch (Exception e) { // e.printStackTrace(); // } // // try { // System.out.println("try2"); // } catch (Exception e) { // // TODO: handle exception // } int i = 2/0; System.out.println("helo"); } }
異常如果沒有捕獲,將會終止執(zhí)行:
打印結(jié)果:
Exception in thread "main" java.lang.ArithmeticException: / by zero at Test.main(Test.java:19)
補(bǔ)充:Java中catch和throw同時使用
一、應(yīng)用背景
在實(shí)際應(yīng)用中,處理異常往往需要更加復(fù)雜的處理——當(dāng)一個異常出現(xiàn)時,單靠某個方法無法完全處理該異常,必須由幾個方法協(xié)作才能完全處理該異常,也就是說,在異常出現(xiàn)的當(dāng)前方法中,程序只能對異常進(jìn)行部分處理,還有些處理需要在方法的調(diào)用者中才能完成,所以應(yīng)該再次拋出異常,讓該方法的調(diào)用者也能捕獲到異常。
為了實(shí)現(xiàn)這種通過多個方法協(xié)作處理同一異常的情形,可以catch塊中結(jié)合throw語句來完成。
二、應(yīng)用舉例
1 代碼示例
AuctionTest.java
public class AuctionTest { private double initPrice = 30.0; // 因?yàn)樵摲椒ㄖ酗@式拋出了AuctionException異常, // 所以此處需要聲明拋出AuctionException異常 public void bid(String bidPrice) throws AuctionException { double d = 0.0; try { d = Double.parseDouble(bidPrice); } catch (Exception e) { // 此處完成本方法中可以對異常執(zhí)行的修復(fù)處理, // 此處僅僅是在控制臺打印異常跟蹤棧信息。 e.printStackTrace(); // 再次拋出自定義異常 throw new AuctionException("競拍價必須是數(shù)值," + "不能包含其他字符!"); } if (initPrice > d) { throw new AuctionException("競拍價比起拍價低," + "不允許競拍!"); } initPrice = d; } public static void main(String[] args) { AuctionTest at = new AuctionTest(); try { at.bid("df"); } catch (AuctionException ae) { // 再次捕捉到bid方法中的異常。并對該異常進(jìn)行處理 System.err.println(ae.getMessage()); } } }
AuctionException.java
public class AuctionException extends Exception { // 無參數(shù)的構(gòu)造器 public AuctionException(){} //① // 帶一個字符串參數(shù)的構(gòu)造器 public AuctionException(String msg) //② { super(msg); } }
2 運(yùn)行結(jié)果
java.lang.NumberFormatException: For input string: "df" at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224) at java.lang.Double.parseDouble(Double.java:510) at AuctionTest.bid(AuctionTest.java:16) at AuctionTest.main(AuctionTest.java:39)
到此這篇關(guān)于如何在java中使用catch處理異常的文章就介紹到這了,更多相關(guān)的內(nèi)容請搜索創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,!
文章名稱:如何在java中使用catch處理異常-創(chuàng)新互聯(lián)
本文路徑:http://www.dlmjj.cn/article/dijjhh.html