码迷,mamicode.com
首页 > 编程语言 > 详细

java 异常

时间:2015-01-31 12:05:53      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:

/*
java 中的所有异常类都是继承自 Throwable类,就是说所有的异常类都是
Throwable类的子类.
所有的类都是 Object 类的子类,Throwable类有两个子类,Error类和Exception类,
主要关注的就是 Exception类,
其中 Exception 类包括 RuntimeException和其他异常类
*/
public class Hi
{
    public static void exception()
    {
        int i[] = {1,2,3};
        System.out.println("i[3] = "+i[3]);
    }
    public static void main(String[] args)
    {
        exception(); // 数组越界异常,报错
    }
}

// 常见的运行时异常类(RuntimeException)
java.lang.ArithmeticException: 算术异常
java.lang.ArrayIndexOutOfBoundsException:数组越界异常
java.lang.ArrayStoreException:数组元素值类型与数组类型不符异常
java.lang.ClassCastException:对象转换异常
java.lang.IllegalArgumentException:调用方法时传入非法参数异常
java.lang.IllegalMonitorStateException:非法监控操作异常
java.lang.IllegalStateException:java环境或java应用程序状态异常
java.lang.IllegalThreadStateException:线程没有处于请求操作所要求状态异常
java.lang.IndexOutOfBoundsException:索引越界异常
java.lang.NegativeArraySizeException:数组长度为负值异常
java.lang.NullPointerException:空指向异常
java.lang.NumberFormatException:数字格式异常
java.lang.SecurityException:违反安全性异常
java.lang.StringIndexOutOfBoundsException:字符串索引越界异常
java.lang.UnsupportedOperationException:操作错误异常
检查异常
java.lang.Exception:处理异常的基本异常类
java.lang.ClassNotFoundException:找不到相关异常
java.lang.CloneNotSupportedException:使用继承自Object类的 clone()方法,但是该类没有实现 Cloneable 接口
java.lang.IllegalAccessException:访问类被拒绝异常(与权限有关)
java.lang.InstantiationException:创建抽象类或接口对象实例异常
java.lang.InterruptedException:线程被另一个线程中断异常
java.lang.NosuchFieldException:在类中找不到此字段异常
java.lang.NosuchMethodException:在类中找不到此方法异常
/*
虽然系统提供了默认的异常处理程序,但是一般情况下,还是开发人员更希望的是自己处理异常:
两种处理异常处理方法:
try ... catch ... finally ...//语句处理异常
throws 关键字将异常传递出来
*/
try
{
    // 可能抛出异常的语句
}catch(异常类型1 异常对象名1)
{
    // 对该类型的异常进行处理的语句
}[catch(异常类型2 异常对象名2) {} ... ]
[finally{
    // 一定会运行的程序代码    
}]
// ===========
public class Hi
{
    public static void main(String[] args)
    {
        int i[] = {1,2,3};
        try
        {
            System.out.println("i[0] = "+i[0]);
            System.out.println("i[3] = "+i[3]); // 数组越界异常
        }catch(ArrayIndexOutOfBoundsException e)
        {
            System.out.println("异常信息:"+e);
        }
        System.out.println("i[1] = "+i[1]);  // 正常执行
    }
}
/*
i[0] = 1
异常信息:java.lang.ArrayIndexOutOfBoundsException: 3
i[1] = 2
*/
// =============
public class Hi
{
    public static void main(String[] args)
    {
        int i[] = {1,2,3};
        try
        {
            System.out.println("i[0] = "+i[0]);
            System.out.println("i[3] = "+i[3]); // 数组越界
        }catch(ArrayIndexOutOfBoundsException e)
        {
            System.out.println("异常信息:"+e);
        }finally
        {
            System.out.println("无论如何都执行的语句");
        }
        System.out.println("i[1] = "+i[1]); // 正常执行
    }
}
/*
i[0] = 1
异常信息:java.lang.ArrayIndexOutOfBoundsException: 3
无论如何都执行的语句
i[1] = 2
*/
// =============
// 多个 catch语句块
import java.util.Scanner;
import java.util.InputMismatchException;
public class Hi
{
    public static void main(String[] args)
    {
        Scanner read = new Scanner(System.in);
        int arr[] = new int[5];
        try
        {
            System.out.println("请输入数组元素:");
            for(int i=0; i<arr.length; i++)
            {
                arr[i] = read.nextInt();
            }
            System.out.println("请输入数组元素索引:");
            int n = read.nextInt();
            System.out.println("arr["+n+"]="+arr[n]);
            int m = arr[3]/arr[0];
            System.out.println("m = "+m);
        }catch(ArrayIndexOutOfBoundsException e) // 捕捉数组越界异常
        {
            System.out.println("异常:"+e);
        }catch(ArithmeticException e)  // 捕捉算术异常
        {
            System.out.println("异常:"+e);
        }catch(InputMismatchException e) // 捕捉输入不匹配异常
        {
            System.out.println("异常:"+e);
        }
        System.out.println("end ... ");
    }
}
// ============

 

java 异常

标签:

原文地址:http://www.cnblogs.com/lin3615/p/4263781.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!