异常

一、异常的分类

编译错误:编译错误是由于没有遵循Java语言的语法规则而产生的,这种错误要在编译阶段排除,否则程序不可能运行。

逻辑错误:逻辑错误是指程序编译正常,也能运行,但结果不是人们所期待的。

运行时错误:运行时错误是指程序运行过程中出现不可能执行的操作,就会出现运行时错误,运行时错误有时也可以由逻辑错误引起。


二、在程序运行过程中产生的异常类型:

1、java内部错误:Error类  这类异常不在用户程序的控制之内

2、是标准异常类:Exception类 这类异常是程序代码中的错误引起的,可以纠正。

3、用户自定义的异常类:在java中程序员是可以自己定义一个异常类,方便自己用于编程。


三、异常处理:

1、是抛出(throw)异常:1.程序运行出错 2.出错产生的异常与系统中预定义某个异常类相对应 3.系统自动产生一个该异常类的对象

2、是捕捉(catch)异常:1.当有异常对象抛出时,将在程序中寻找处理这个异常的代码, 2.如果找到处理代码,则把异常对象交给该段代码进行理

注意

1.语句中只能捕获到一个异常,并且是第一个异常,结束后,会直接往下面的代码块执行。

2.如果捕捉异常语句中没有任何错误,程序会正常运行,且跳过catch语句块。

四、异常抛出:

1 由系统自动抛出异常


2.认为的异常抛出

两种方式

① 在方法头写出需要抛出的异常(利用throws语句) 

② 在方法体内抛出异常(利用throw语句)

注意两个单词的区别

①方法名()+throws+异常类型名{

 方法体

}

②方法名(){

throw new+异常类型();

}


五、捕捉异常

try – catch语句块格式:


try{
       //在此区域内或能发生异常; 
       }catch(异常类1   e1)
        { //处理异常1; }
        …
        catch(异常类n   en)
     { //处理异常n; }
 [finally
   { //不论异常是否发生,都要执行的部分; }
 ]

六、用户自定义的异常类:Java提供了很多异常类,但用户还是可以根据需要定义自己的异常类,即创建自定义异常类。

(1)用户自定义的异常类必须是Throwable类或Exception类的子类。

(2)自定义的异常类,一般只要声明两个构造方法,一个是不用参数的,另一个以字符串为参数。作为构造方法参数的字符串应当反映异常的信息。

(3)自定义异常类格式

class MyException extends Exception{

}

注:用户定义的异常同样要用try–catch捕获,但必须由用户自己抛出 throw new MyException().

例:

class Exception_exp{
         public static void main(String[] args){
             try {  
              System.out.println("2+3="+add(2,3));
                    System.out.println("-8+10="+add(-8,10));
             }catch (Exception e){
             System.out.println("Exception is "+e);
         }
       }
       public static int add(int n,int m) throws UserException {
               if (n<0|| m<0) throw new UserException();
              return n+m; 
       }
}
class UserException extends Exception{
         UserException(){
          super("数据为负数");
       }
 }




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值