文章目录
1.自定义异常
步骤:
(1)创建一个类继承于Throwable或其子类;
class 异常类名 extends Exception
{
public 异常类名(String msg)
{
super(msg);
}
}
(2)添加构造方法,在一个方法中使用throws抛出异常
throws 异常类名
(3)捕获并处理异常
try{}
catch(异常类名 ){}
2.小例子
计算绝对值表达式 |a-b|。
完成一个 java application应用程序,完成一个计算绝对值表达式 |a-b|的功能。要求当b比a大时人为抛出一个自定义异常,在计算绝对值时通过异常捕捉机制完成此绝对值表达式的计算。
代码如下:
import java.util.Scanner;
class jianshuException extends Exception //自定义异常类,继承Exception类
{
public jianshuException(String msg)
{
super(msg);//调用父类的构造方法
}
}
class Numbertest //自定义异常类
{
public int jian(int a,int b) throws jianshuException //b大于a时,抛出一个自定义异常
{
int c;
if(b>a)
{
throw new jianshuException("b大于a时,抛出一个自定义异常");//抛出异常
}
else
{
c=a-b;
}
return c;
}
}
class CalculateDemo2 //主程序
{
public static void main(String[]args)
{
Scanner sc=new Scanner(System.in);//从键盘接收数据
System.out.println("请输入a:");
int a=sc.nextInt(); //输入a的数值
System.out.println("请输入b:");
int b=sc.nextInt();//输入b的数值
Numbertest n=new Numbertest();
//捕获异常
try
{
int c=n.jian(a,b);
System.out.println("c=|a-b|\n"+"=|"+a+"-"+b+"|="+c);//输出c
}
catch(Exception e)
{
int c=b-a;
System.out.println(e.getMessage());//输出异常的信息
e.printStackTrace(); //输出导致异常更为详细的信息
System.out.println("c=|a-b|\n"+"=|"+a+"-"+b+"|="+c);//输出c
}
}
}
结果如下: