Java学习之自定义异常和抛出异常

知识点:
1.throws是在定义方法时候抛出异常,throw是在方法体内抛出异常
2.try{}catch(Exception e){}finally{}这是一个比较常见的组合

使用try-catch-finally组合注意点:
• 当不存在catch语句时,finally 语句必须存在并且紧跟在try语句后面。
• 在try语句和catch语句间不能存在任何语句,同样在catch语句和finally语句中也不能存在任何语句 ,这地方的语句不包括注释语句。
• 当不存在catch语句时,finally语句必须存在并且紧跟在 try语句后面。在try语句和catch语句间不能存在任何语句。

自定义异常类型
MyException.java

public class MyException extends Exception
{
  public MyException()
  {

  }
  public MyException(String s)
  {
        super(s);
  }

}

写一个可能抛出异常的方法
ExceptionClass.java

public class ExceptionClass
{
  public String setNumber(int number) throws MyException
    {
        if(number >= 0 && number <=100)
        {
            return "正常";
        }
        else
        {
            throw new MyException("输入错误");
        }
    }

}

调用该方法
MainClass.java

public class MainClass
{
   public static void main (String args[])
    {
        try{
            ExceptionClass exception = new ExceptionClass();
            //设置0-100范围数字
            String s = exception.setNumber(90);
            System.out.println(s);
        }
        catch(MyException e)
        {
            System.out.println("异常信息为:"+e.getMessage());
        }
    }
}

依次分别编译上面的三个文件

$: javac -d . MyException.java
$: javac -d . ExceptionClass.java
$: javac -d . MainClass.java

运行MainClass.class

java MainClass

输出

正常

这时候我们修改MainClass.java的源代码,setNumber传入参数110,让setNumber方法抛出异常

String s = exception.setNumber(110);

再次变异运行

$: javac -d . MainClass.java
java MainClass

输出

异常信息为:输入错误

如果我们修改MainClass.java的源码,去除try{}catch{}如下:

MainClass.java

public class MainClass
{
   public static void main (String args[])
    {
            ExceptionClass exception = new ExceptionClass();
            //设置0-100范围数字
            String s = exception.setNumber(110);
            System.out.println(s);
    }
}

我们再次编译时候会出现如下警告

MainClass.java:7: 错误: 未报告的异常错误MyException; 必须对其进行捕获或声明以便抛出
            String s = exception.setNumber(110);
                                          ^
1 个错误

系统会对于可能出现异常的语句进行检查,如果有异常就会编译失败。所以自定异常也是很好的检测代码稳定性和维护结构的方式

  • 9
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java自定义异常抛出异常对象 Java异常是一种程序运行时出现的问题,通常会导致程序无法正常执行,为了避免这种情况的发生,Java提供了异常处理机制,其中自定义异常是一种非常重要的功能。 自定义异常是指通过继承Java中的Exception类或者RuntimeException类来创建自己的异常类,也可以实现自己的异常类。在使用自定义异常时,需要为异常类提供一个有意义的名称,并提供相应的构造函数。当程序出现异常时,可以将这个异常对象作为参数传递给异常处理程序。 一般情况下,我们可以自定义异常来处理特定的异常情况,这样就可以提高代码的可读性,同时也可以让程序能够更好地将问题传递给用户。自定义异常还可以提高代码的可维护性,因为它使得程序员能够更容易地记住代码中可能会出现的各种异常情况。 在Java中,抛出异常对象是通过throw语句来完成的。当程序运行到某个位置时,如果出现了问题,就可以抛出一个异常对象,这个对象会被传递给相应的异常处理程序。在抛出异常时,可以选择使用Java中的预定义异常类,也可以使用自定义异常类。 需要注意的是,Java中不允许抛出任何类型的异常对象,只能抛出从Throwable类派生出来的类,这包括Error类、Exception类等。因此,在自定义异常类时,需要合理选择继承的父类,并确保异常类的使用不会对程序的稳定性造成影响。 总之,Java自定义异常抛出异常对象已成为Java程序设计的重要部分,它能够提高代码的可读性和可维护性,同时也可以方便程序员对不同异常情况进行处理,使得程序更加健壮。因此,在Java程序设计中,需要充分利用自定义异常抛出异常对象的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值