JAVA中异常详解

文章介绍了程序中的异常概念,包括异常的作用、分类,如编译时异常和运行时异常,并举例说明了InputMismatchException等常见异常。同时,详细解释了Java中的异常处理机制,如try-catch-finally关键字的使用,以及throws和throw的区别和应用。
摘要由CSDN通过智能技术生成

1,什么是异常呢?

在程序中,错误可能产生于我们没有预料到的各种情况,或者超出我们的可控范围的环境。比如需要用户输入年龄,用户输入了一个字母,这就是一种异常。

2.异常的作用

能够及时有效地处理程序中的运行错误。

3.异常的分类

异常分为编译时异常和运行时异常

----运行时异常:是运行的时候才会出现的一种异常,编码过程中可以先不解决

----编译时异常:是在编译的时候就出现的异常,需要先解决

4.常见的异常

ClassCastException        强制类型转换异常

ArryaylndexOutOfBoundsException          数组越界异常

ArithmeticException          数学运算符异常

InputMismatchException      输入类型不匹配异常

如果系统要求用户输入一个整数,但是用户输入了一个字母,这时候运行程序就会发生InputMismatchException输入类型不匹配异常

Exception in thread "main" java.util.InputMismatchException
        at java.util.Scanner.throwFor(Unknown Source)
        at java.util.Scanner.next(Unknown Source)
        at java.util.Scanner.nextInt(Unknown Source)
        at java.util.Scanner.nextInt(Unknown Source)
        at text.text.main(text.java:11)

5.关键字 try   catch   finally   throw   throws

 try catch

try{
      //把可能出现异常的代码放这里 
   }catch(Excepion e ) {    
     // 捕获异常
   }catch( ){
     //程序运行过程中,如果出现异常则会被对应的catch【可以有多个】捕获到,其他的不会被执行
}     
try{}
catch (ArithmeticException a){  //  捕获异常
         //以字符串的形式打印异常信息
     System.out.println("数学异常.....");
     String message = a.getMessage();
     System.out.println(message);
}

捕获异常的时候,如果出现子父类异常的情况,将范围小的写在上面,范围大的写在下面,也可以只写一个大的。

如果程序没有异常的话,会正常的自上而下执行,如果程序有异常的话,会在异常的地方中断程序的执行,然后回跳到对应的catch中执行捕获的异常信息。

finally

如果是希望一定会被执行的内容,则放到finally中,除非遇到 exit( )方法------>强制退出,当程序中既有return 又有 finally 的时候,会优先执行finally 再执行 return。

try{
     .....
}catch(){
     ......
}finally {....}    

throws

上抛异常 ,在方法声明位置上使用,表示上报异常信息给调用者。

public int chu (int a,int b) throws Exception{
    int num=a/b;
    returen ;
}

如果方法A中有异常没有处理,做了上抛,则调用A的方法B需要try处理,如果依然没有处理,运行的时候异常会报错。

throw

throw :异常的抓取        throw new 异常类型;

如果Object类给我们提供的异常提示信息不满足我i门的需要,可以自定义异常,来定制化异常提示

public void pop() throws StackOperationException {
        if(index < 0){
        throw new MyStackOperationException("可以自定义输出异常信息!");//手动抛出异常
        }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值