java基础 Exception异常

throwable异常的根类
1. error:程序出现无法控制的错
2. Exception:可控的,可以手动修改,处理
    1)RuntimeException:运行时异常
    2)编译期异常

RuntimeException:运行时异常处理方式:
    try{ }catch(){  }
    try{ }catch(){  }finally{}
    throws(向上抛) 在方法的声明处抛出一个异常,java虚拟机处理异常的方式默认为:输出异常信息,结束程序。

 throw 手动抛出一个异常对象
                格式:
            try{
                包含可能发生异常的代码
            }catch(Exception e){
                一旦try中代码发生异常,发生的异常会被catch捕获,并执行这里的代码对异常进行处理,处理完毕,程序继续向下执                 行。
                如果try中没有发生异常,则不会被catch捕获。
            }

finally意为最终的,表示最终要执行的,
    与try…catch组合使用,不管发生不发生异常,最终都要执行finally中的代码。
    finally语句是一个可选选项,可以有,也可以没有。
如果在try或catch中使用return结束方法了,那么也会在return前执行finally语句

运行期异常的特点:如果出运行期的异常,单线程最后会被main方法抛出异常,这时方法终止。
(main方法中在抛出异常之前的代码都会被执行,在调用有异常的代码时,由于有异常出现它之后的代码将不会被执行)

throws和throw区别
    throws在方法声明处抛出方法内部可能发生的异常给调用者。
    throw:在方法内部根据需求手动抛出异常,方法再根据抛出的该异常进行相应的处理。
    throw的功能只是根据需求,抛出一个异常对象而已。
    至于说,throw抛出的是编译期异常、还是运行期异常,解决方式就不归throw考虑的范围内,
    因为throw的作用仅仅是抛出一个异常而已。
常见异常
1.数学异常(除数为0返回)
    ArithmaticException
2.数组下标异常
    ArrayIndexOutOfBoundsException
3.空指针异常
    NullPointerException
4.强转类型不符异常
    ClassCastException
5.文件找不到异常
    FileNotFoundException
6.格式化异常(日期类,传入类型不符时返回)
    ParseExcption

自定义异常

自定义一个类,继承父类Exception,定义的类包含两个构造器

1>默认的构造器

2>带有详细信息的构造器

package com.exception;
/**
*@author 曰业而安
*@version  创建时间  2019年6月18日 下午3:29:34
*类说明:自定义异常类
*
*/
public class MyException extends Exception{
	/**
	 * 无参构造函数
	 */
	public MyException() {
		super();
	}
	/**
	 * 用指定的详细信息和原因构造一个新的异常
	 * @param message
	 * @param cause
	 */
	public MyException(String message, Throwable cause) {
		super(message, cause);
		// TODO Auto-generated constructor stub
	}
	/**
	 * 用详细信息指定一个异常
	 * @param message
	 */
	public MyException(String message) {
		super(message);
		// TODO Auto-generated constructor stub
	}
	/**
	 * 用指定原因构造一个新的异常
	 * @param cause
	 */
	public MyException(Throwable cause) {
		super(cause);
		// TODO Auto-generated constructor stub
	}
	
	public MyException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
		super(message, cause, enableSuppression, writableStackTrace);
		// TODO Auto-generated constructor stub
	}
}

自定义异常的使用,就不展示代码部分啦。结合业务需求,捕捉异常给出提示信息,这样我们的代码就比较友好啦。

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值