例题9.1
package 例题;
//算术异常例题
public class Baulk {
public static void main(String[] args) {
// TODO Auto-generated method stub
//尝试捕捉异常
try{
//定义Int型变量并赋值
int result = 3 / 0;
//输出变量
System.out.println(result);
//处理捕捉到的异常
}catch(ArithmeticException e) {
System.out.println("算术异常");
}
}
}
9.2例题
package 例题;
//数字格式异常例题
public class Thundering {
public static void main(String[] args) {
// TODO Auto-generated method stub
//定义字符串
String str = "lili";
//提示信息
System.out.println(str + "年龄是:");
//类型转换
int age = Integer.parseInt("20L");
//输出信息
System.out.println(age);
}
}
9.3例题
package 例题;
public class Take {
public static void main(String[] args) {
// TODO Auto-generated method stub
//尝试捕捉异常
try {
//定义字符串
String str = "lili";
//提示信息
System.out.println(str + "年龄是:");
//类型转换
int age = Integer.parseInt("20L");
//输出信息
System.out.println(age);
//处理捕捉到的异常
}catch(NumberFormatException e) {
//e.printStackTrace();
System.out.println("格式转换异常");
//执行最后的代码块
}finally {
System.out.println("程序结束");
}
//System.out.println("program over");
}
}
9.4例题
package 例题;
public class Shoot {
//定义静态方法
static void pop()throws NegativeArraySizeException{
//数组赋值
int[]arr = new int[-3];
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//尝试捕捉异常
try {
//调用方法
pop();
//解决异常
}catch(NegativeArraySizeException e) {
//输出异常
System.out.println("pop()方法抛出异常");
}
}
}
9.5例题
package 例题;
//创建自定义类异常例题
//创建自己的类,继承Exception
public class MyException extends Exception{
//创建构造方法
public MyException(String ErrorException) {
//调用父类构造方法
super(ErrorException);
}
}
9.6例题
package 例题;
//自定义类测试例题
//创建一个类
public class Tran {
//定义方法,制造异常
static int avg(int number1, int number2)throws MyException{
//判断方法中参数是否满足指定条件
if(number1 < 0 || number2 < 0 ) {
//输出错误信息
throw new MyException("不可使用负数");
}
//判断方法中参数是否满足指定条件
if(number1 > 100 || number2 > 100) {
//输出错误信息
throw new MyException("数值太大了");
}
//将参数的平均值返回
return (number1 + number2) / 2;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//捕捉异常
try {
//调用avg()方法
int result = avg(102,150);
//将返回的参数值输出
System.out.println(result);
//处理异常
}catch(MyException e) {
//输出异常信息
System.out.println(e);
}
}
}
9.7例题
package 例题;
public class MyException1 extends Exception{
//定义变量
String message;
//定义有参构造方法
public MyException1(String ErrorMessagr) {
//参数赋值给变量
message = ErrorMessagr;
}
//重写父类方法
public String getMessage() {
//返回变量
return message;
}
}
9.8例题
package 例题;
public class Captor {
//定义方法,且抛出异常
static int quotient(int x, int y)throws MyException1{
//定义条件
if(y < 0) {
//如果被除数小于0,就抛出异常
throw new MyException1("除数不能是负数");
}
//返回x/y
return x / y;
}
//主方法
public static void main(String[] args) {
// TODO Auto-generated method stub
//尝试捕捉异常
try {
//调用方法
int result = quotient(30, -5);
System.out.println(result);
//处理捕捉的异常,查看异常是否匹配
}catch(MyException1 e) {
//如果匹配,输出异常的信息
System.out.println(e.getMessage());
//处理捕捉的异常,查看是否匹配
}catch(ArithmeticException e) {
//如果匹配,输出异常信息
System.out.println("除数不能为0");
}catch(Exception e) {
System.out.println("程序发生了其他异常");
}
}
}