异常(Exception)

1、Java中异常的分类:

(1)Checked Exception(非 Runtime Exception)

(2)Unchecked Exception(Runtime Exception)

2、Java中所有的异常都直接或间接的继承自Exception。

3、一旦发生异常,程序就会停止,不再执行。

4、RuntimeException也是直接继承自Exception,叫做运行时异常,Java中所有运行时异常都直接或间接继承自RuntimeException。

5、java中凡是继承自Exception而不是RuntimeException的类都是非运行时异常。

6、异常一般的处理流程

try

{

//可能会发生异常的代码

}

catch(Exception e)

{

}

finally

{

}

无论程序是否会抛出异常,finally都会被执行。

7、不过try后面有多少个catch,只有一个catch会被执行。

8、对于非运行时异常(Checked Exception),必须对其进行处理,处理方法有两种:一种是使用try...catch...finally进行捕获,第二种是在调用该会产生异常的方法的方法声明throws Exception。(在main方法中继续抛异常,最终会由JVM来处理异常)

9、对于欲行时异常(Unchecked Exception),可以对其处理,也可以不对其处理。推荐不对其处理。

 

异常使用的一个例子:

package com.sailang.java;

public class ExceptionTest1
{
	public void method() throws Exception
	{
		System.out.println("Welcome");
		
		throw new Exception();
	}
	
	public static void main(String[] args)
	{
		ExceptionTest1 ex = new ExceptionTest1();
		
		try
		{
			ex.method();
		} catch (Exception e)
		{
			e.printStackTrace();
		}
	}
}

10、NullPointException是空指针异常,出现该异常的原因在于某个引用为null,但你确调用了它的某个方法,这是就会出现异常。这个异常出现的概率很大!

package com.sailang.java;

public class ExceptionTest2
{
	public static void main(String[] args)
	{
		String str = null;
		
		System.out.println(str.length());
	}
}

 11、所谓自定义异常类就是继承自Exception类的一个子类。通常情况下,我们都会直接继承自Exception类,而一般不会继承自某个运行时的异常类。

自定义异常很简单,可以仿照JDK中的异常来写。

自定义异常类:

package com.sailang.java;

public class MyException extends Exception
{
	public MyException()
	{
		super();
	}
    /**
     * 
     * @param message 用于显示异常信息
     */
	public MyException(String message)
	{
		super(message);
	}
}

使用异常类:

package com.sailang.java;

public class ExceptionTest3
{
	public void method(String str) throws MyException
	{
		if(str == null)
		{
			throw new MyException("传入参数不能为空");
		}
		else
		{
			System.out.println(str);
		}
	}
	
	public static void main(String[] args)
	{
		try
		{
			ExceptionTest3 ex = new ExceptionTest3();
			
			ex.method("lizhongyi");			
		}
		catch(MyException e)
		{
			e.printStackTrace();
		}
		finally
		{
			System.out.println("异常处理完毕");
		}
		
		System.out.println("程序执行完毕");
	}
}

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值