java异常总结。

转自http://blog.csdn.net/justdb/article/details/7875765,corejava异常处理知识点总结

 

1. error和exception有什么区别? (它是Throwable的两个子类)

error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。

exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

         java常见异常:下标越界,空指针异常,数学运算异常。没有访问权限。类型转换异常。

         异常又分为运行时异常和输入输出异常。

2.异常的处理机制?

如果过多得使用if,else进行处理,程序将会变得冗长。

java采用异常处理机制,将异常处理得代码集中在一起,和正常得代码分开,使程序简洁,便于维护。

抛出异常:

抓抛模型:java程序得执行过程中,如果出现异常,会自动生成一个异常类对象,该对象会被提交给java运行时的系统。这个过程称为抛出异常。(throw)

捕获异常:

如果一个方法抛出异常,该异常会被抛到调用方法中,如果异常没有在调用方法中处理,他机会被抛给这个调用方法的调用者,这个过程将会一直持续下去,知道这个异常被处理,这个过程称为捕获异常(catch)。

如果一个异常回到main()方法并且main方法也不处理,那么程序运行会终止。

程序员只能处理exception,而对error无能为力。

try..catch

try后面可以放多个catch,每一个异常做一个catch以处理多个异常,一般把父类放在后面。

 try

    {         
//
 可能发生异常的代码
        
//
 如果发生了异常,那么异常之后的代码都不会被执行

    }    
catch
 (Exception e)
    {        
//
 异常处理代码

    }    
finally

    {        
//
 不管有没有发生异常,finally语句块都会被执行

    }

所谓自定义异常,通常就是定义一个类,去继承Exception类或者它的子类。因为异常必须直接或者间接地继承自Exception类。   通常情况下,会直接继承自Exception类,一般不会继承某个运行时的异常类。   自定义异常可以用于处理用户登录错误,用户输入错误提示等。   自定义异常的例子:   自定义一个异常类型:

public class MyException extends Exception

{

    public MyException()

    {

        super();

    }    

    public MyException(String message)

    {

        super(message);

    }

}
 一种异常处理方式:
public class ExceptionTest4
{
    public void method(String str) throws MyException
    {
        if(null == str)
        {
            throw new MyException("传入的字符串参数不能为null!");
        }
        else
        {
            System.out.println(str);
        }
    }
    
    public static void main(String[] args) throws MyException //异常处理方式1,不断向外抛出
    {
        ExceptionTest4 test = new ExceptionTest4();
        test.method(null);
    }
} 
第二种处理异常方式: 
public class ExceptionTest4
{
    public void method(String str) throws MyException
    {
        if (null == str)
        {
            throw new MyException("传入的字符串参数不能为null!");
        }
        else
        {
            System.out.println(str);
        }
    }
    public static void main(String[] args)
    {
        //异常处理方式2,采用try...catch语句
        try
        {
            ExceptionTest4 test = new ExceptionTest4();
            test.method(null);
        }
        catch (MyException e)
        {
            e.printStackTrace();
        }    
        finally
        {
            System.out.println("程序处理完毕");
        }
    }
}

 

你可能感兴趣的:(java异常总结。)