Java例题第7章

这个博客展示了多个Java异常处理的例子,包括使用try-catch-finally语句块来捕获和处理ArrayIndexOutOfBoundsException,ArithmeticException,以及自定义Exception。还演示了如何在方法中抛出和捕获异常,以及自定义异常类的创建和使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.io.*;
public class Ex7_1_ExceptionTest {
	public static void main(String[] args) {
		int i=0;
		String str[]= {"One","Two","Three"};
		while(i<=3) {
			System.out.println(Str[i]);
			i++;
		}
		System.out.println("程序正常结束");
	}

}
import java.io.*;
public class Ex7_2_ExceptionTest {
	public static void main(String[] args) {
		int i=0;
		String str[]= {"One","Two","Three"};
		try {
			while(i<=3) {
				System.out.println(str[i]);
				i++;
			}
		}catch(java.lang.ArrayIndexOutOfBoundsException e) {
			System.out.println("数组下标越界异常!");
		}finally {
			System.out.println("finally i="+i);
		}
		System.out.println("程序正常结束");
	}

}
import java.io.*;
public class Ex7_3_CatchException {
	public static void main(String args[]) {
		int a,b,c;
		a=110;
		b=0;
		try {
			c=a/b;
			System.out.println(a+"/"+b+"="+c);
		}catch(Exception e) {
			System.out.println("异常类型为"+e);
		}finally {
			System.out.println("除数="+a);
			System.out.println("被除数="+b);
		}
		a=110;
		b=10;
		try {
			c=a/b;
			System.out.println(a+"/"+b+"="+c);
			
		}catch(ArithmeticException e) {
			System.out.println("出现被0除的异常情况");
		}catch(Exception e) {
			System.out.println("异常类型为"+e);
		}finally {
			System.out.println("除数="+a);
			System.out.println("被除数="+b);
		}
	}

}
import java.io.*;
public class Ex7_4_ThrowException {
	public static void main(String[] args) {
		int age=200;
		try {
			if(age<0||age>120)
				throw new Exception("年龄数据超出范围");
			System.out.println("age="+age);
		}catch(Exception e) {
			e.printStackTrace();
		}
	}

}
import java.io.*;
public class Ex7_5_ThrowsException {
	public static int calc(int x) {
		int z=0;
		z=110/x;
		return z;
	}
	public static void main(String[] args) {
		int a=0;
		try {
			a=cala(0);
			System.out.println("a="+a);
		}catch(ArithmeticException e) {
			System.out.println("调用方法calc时发生异常"+e.getMessage());
			e.printStackTrace();
		}
	}

}
import java.io.*
public class Ex7_6_ThrowsException {
	public static int cala(int x)throws Exception{
		int z=0;
		if(x==0)
			throws new Exception("除数为零!");
		z=110/x;
		return z;
	}
	public static void main(String[] args) {
		int a=0;
		try {
			a=calc(0);
			System.out.println("a="+a);
			
		}catch(Exception e) {
			System.out.println("调用方法calc时发生异常:"+e.getMessage());
			e.printStackTrace();
		}
	}

}
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Ex7_7_ThrowsException {
	public static void main(String args[]) {
		System.out.println("输入一行文本:");
		InputStreamReader isr=new InputStreamReader(System.in);
		BufferedReader input Reader=new BufferedReader(isr);
		String inputLine=inputReader.readLine();
		System.out.println("输入的文本是:"+inputLine);
	}

}
import java.util.Scanner;
public class Ex7_8_DefineException {
	public static void main(String[] args) {
		final int MIN=25,MAX=40;
		Scanner scan=new Scanner(System.in);
		OutOfRangException problem=new OutOfRangException();
		System.out.print("输入"+MIN+"至"+MAX+"之间的整数:");
		try {
			int value=scan.nextInt();
			if(value<MIN||value>MAX)
				throw problem;
		}catch(OutOfRangException e) {
			System.out.println(e.toString());
		}
		System.out.println("主方法结束.");
		
	}

}
class OutOfRangException extends Exception{
	OutOfRangException(){
		super("输入数据超出范围!");
	}
}
import java.io.*;
public class Ex7_9_ExceptionDemo {
	public static void main(String[] args) {
		int arr[]= {100,200,300,400,500,600};
		String index;
		int position;
		BufferedReader inputReader;
		inputReader=new BufferedReader(new InputStreamReader(System.in));
		while(true) {
			System.out.print("输入序号(输入end结束):");
			try {
				index=inputReader.readLine();
				if(index.contentEquals("end"))
					break;
				position=Integer.parseInt(index);
				System.out.println("元素值为:"+arr[position]);
			}catch (ArrayIndexOutOfBoundsException e) {
				System.out.println("数组下标越界!");
			}catch(IOException e) {}
		}
		System.out.println("程序运行结束.");
	}

}
public class java7_10 {
	public static void main(String args[]) {
		try {
			Bank ba=new Bank(50);
			ba.withdrawal(100);
			System.out.println("取款成功!");
		}catch(InsufficientFundsException e) {
			System.out.println(e.toString());
			System.out.println(e.excepMessage());
		}
	}

}
class Bank{
	double balance;
	Bank(double balance){
		this.balance=balance;
	}
	public void deposite(double dAmount) {
		if(dAmount>0.0)balance+=dAmount;
	}
	public void withdrawal(double dAmount)throws InsufficientFundsException{
		if(balance<dAmount)
			throw new InsufficientFundsException(this,dAmount);
		balance=balance-dAmount;
	}
	public void showBalance() {
		System.out.println("The balance is"+(int)balance);
	}
}
class InsufficientFundsException extends Exception{
	private Bank excepbank;
	private double excepAmount;
	InsufficientFundsException(Bank ba,double dAmount){
		super("取款异常!");
		excepbank=ba;
		excepAmount=dAmount;
	}
	public String excepMessage() {
		String str="银行存款是:"+excepbank.balance+"\n"+"要取的钱是:"+excepAmount;
		return str;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值