[Java实验 5] 异常处理
實(shí)驗(yàn)題目
一、 實(shí)驗(yàn)?zāi)康?/h2>
1、了解 Java 中的異常類。
2、學(xué)會使用異常模式 try-catch-finally。
3、掌握自定義異常處理。
二、實(shí)驗(yàn)環(huán)境
1、硬件環(huán)境:個(gè)人 PC 機(jī)
2、軟件環(huán)境:windows 操作系統(tǒng)+JDK1.8 或以上+Eclipse 或 Idea
三、實(shí)驗(yàn)內(nèi)容
編寫一個(gè)程序,使用異常處理模式、系統(tǒng)給定的處理方式,自己編寫一個(gè)異常并做處理。 題目:編寫一個(gè)銀行類 Bank,要求如下“:
(1)變量 balance 為存款余額;
(2)deposite()方法為存款操作;
(3)withdrawa()方法為取款操作;
(4)getbalawal()方法為獲取余額操作,如果余額少于取款額時(shí),顯示當(dāng)前余額,并告知不能取款的提醒,否則顯示取款成功的信息。要求自義定異常來處理余額不足的 問題。
四、注意事項(xiàng)
1、理解系統(tǒng)異常處理的機(jī)制和創(chuàng)建自定義異常的方法。
2、掌握異常的定義、拋出方法及如何捕獲并處理異常。
實(shí)驗(yàn)操作
1.自定義異常創(chuàng)建
首先要創(chuàng)建一個(gè)異常類,來繼承Throwable類,其關(guān)系圖如下
這里根據(jù)上面的題目要求,創(chuàng)建如下異常
需要注意的是:
- Error(錯(cuò)誤):通常是災(zāi)難性的致命錯(cuò)誤,不是程序可以控制的,如內(nèi)存耗盡、JVM系統(tǒng)錯(cuò)誤、堆棧溢出等。應(yīng)用程序不應(yīng)該去處理此類錯(cuò)誤,且程序員不應(yīng)該實(shí)現(xiàn)任何Error類的子類。
- Exception(異常):用戶可能捕獲的異常情況,可以使用針對性的代碼進(jìn)行處理,如:網(wǎng)絡(luò)連接中斷、數(shù)組下標(biāo)越界等。
2.創(chuàng)建Bank類
import java.util.Scanner;public class Bank {private int balance; //存款余額private int withdraw; //需要取出的余額private int deposit; //需要存儲的余額public void setBalance(int balance) {if(balance < 0) {System.out.println("輸入余額不能為負(fù)數(shù)哦! ");} else {this.balance = balance;}}public int getBalance() {return balance;}public int getWithdraw() {return withdraw;}public int getDeposit() {return deposit;}public void setWithdraw(int withdraw) {this.withdraw = withdraw;}public void setDeposit(int deposit) {this.deposit = deposit;}public Bank() {}public Bank(int balance) throws IllegalNumberException {if(balance < 0) {throw new IllegalNumberException();}this.balance = balance;}// 存款操作public void deposite() {System.out.println("請輸入存款金額");Scanner scan = new Scanner(System.in);deposit = scan.nextInt();setDeposit(deposit);balance = balance + deposit;getbalawal();} // 取款操作public void withdrawa() throws IllegalNumberException{System.out.println("請輸入取款金額");Scanner scan = new Scanner(System.in);withdraw = scan.nextInt();if(withdraw > balance) {throw new IllegalNumberException();} else {setWithdraw(withdraw);balance = balance - withdraw;}}// 獲取余額操作public void getbalawal() {System.out.println("您當(dāng)前余額為: "+balance);} }3.創(chuàng)建運(yùn)行類
import java.util.Scanner;public class BankMain {public static void main(String[] args) {Bank bank = new Bank();while(true) {System.out.println("--------[銀行菜單選擇]---------");System.out.println("1. 存款");System.out.println("2. 取款");System.out.println("3. 查詢當(dāng)前余額");Scanner scan = new Scanner(System.in);int x = scan.nextInt();switch (x){case 1:bank.deposite();break;case 2:try{bank.withdrawa();} catch (IllegalNumberException e) {throw new RuntimeException("您的余額不足,當(dāng)前余額為:"+bank.getBalance());}break;case 3:bank.getbalawal();break;default:throw new IllegalStateException("輸入了沒有功能的按鈕: " + x);}}}}運(yùn)行結(jié)果如下:
?可以看到,當(dāng)我們?nèi)】畲笥诹擞囝~時(shí),程序就會報(bào)錯(cuò),并且強(qiáng)制終止,也可以用多線程來實(shí)現(xiàn)一個(gè)更加安全的寫法。
4.實(shí)驗(yàn)總結(jié)
異常是程序由于各種原因?qū)е聼o法正常運(yùn)行的一個(gè)事件,這個(gè)事件是由一個(gè)異常對象來代表的,這個(gè)對象的產(chǎn)生取決于產(chǎn)生異常的類型,可能由應(yīng)用程序本身產(chǎn)生,也可能由Java虛擬機(jī)產(chǎn)生。
總結(jié)
以上是生活随笔為你收集整理的[Java实验 5] 异常处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为鸿蒙朱丹丹,周一围心疼老婆?朱丹二胎
- 下一篇: python 获取qq群成员信息_用Py