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

来源:互联网 发布:推荐淘宝皮鞋店铺 编辑:程序博客网 时间:2024/06/06 14:27

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结构可以嵌套使用.

0 0
原创粉丝点击