第20天 Java中的常见的异常类和异常处理(有栗子)

Java中常见的异常类型有以下几类:
这里写图片描述
下面再简单介绍一下这几个异常类:
1.ArithmeticException类
该类用于描述算术异常,比如当除0时,会抛出该异常。

int re=10/0;//除数为0,抛出ArithmeticException异常

2.NullPointerException类
用来描述空指针异常,当引用对象是null时,如果调用该对象的属性和方法。会抛出该异常。

String str=null;
int len=str.length();//因为str为null对象,不能调用length()方法

3.ArrayIndexOutOfBoundsException类
该类用于描述数组下表越界是出现的异常。

int[] a=new int[8];
a[8]=9;//数组的最大下标是7,所以此处访问越界

4.NumberFormatException类
该类用于描述字符串转换为数字时的异常。

String str="123AB";
Integer.parseInt(str);//里面出现了字符

try和catch语句:
语法格式如下:

try{
    可能产生异常的代码
}catch(异常类1 异常对象1)
{
    异常处理代码段1
}catch(异常类2 异常对象2)
{

}
.
.
.

try代码块中的代码执行后可能有多种异常,程序捕获哪一种类型的异常,是由catch语句中的”异常类“参数指定的。
代码中的每一个catch语句都用来捕获一种类型的异常。如果try块中的代码执行时发生异常,则会由上而下依次查找捕获该异常的catch语句块,并执行该语句块中的代码。

下面写一个程序练一下吧:
/*
*设计一个程序,其功能是从命令行输入整数字符串,再将该整数字符串转换为整数,输入的数据可能具有以下格式: 12345 123 45 123x yz456 对这种异常进行捕获和处理。
*/

package test;
import java.util.Scanner;  

public class HelloWorld{  
    public static void main(String args[]){  
        int i;  
        Scanner input=new Scanner(System.in);    
        System.out.println("请输入要输入的数字字符串个数i:");  
        i=input.nextInt();  
        String str;  
        str=input.nextLine();  
        System.out.println(str);
        for(int j=1;j<=i;j++){  
            System.out.println("请输入第"+j+"个数字字符串:");  
            str=input.nextLine();  
            try{  
                Integer.parseInt(str);   
                  }catch(NumberFormatException e){   
                System.out.println("有异常产生了!"); 
            }             
            finally{  
                System.out.println("程序已执行!");   
            }  
        }  
        System.out.println("程序执行结束啦~");  
    }  
}  


下面的图片为运行结果:
这里写图片描述

上面说了关于异常处理时怎么使用try-catch结构实现对异常的处理。
另外呢,在使用该结构时,还必须注意一下几点:
1.catch块一定要与try块一起使用,不能单独的使用catch块。
2.如果不发生异常,catch块永远不会被执行。
3.一旦某个catch块被执行,其他catch块都会被忽略。
4.一个try块可以有多个catch块,但是多个catch块的排列顺序必须是从特殊到一般,最后一个一般是Exception类。
5.try-catch结构可以嵌套使用.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值