黑马程序员——java学习之异常处理

    ------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

       java中异常处理的部分并不难,但是有很多地方需要注意,针对于自己来说主要是自定义异常类部分,这块有些概念比较容易混淆。下面的部分主要是自己在学习过程中做得学习笔记。有些部分多次强调,主要就是理解起来有困难,所以多写两遍,也多理解两遍。

    异常:程序运行时出现的不正常的现象。异常的处理机制:try{需要检测的代码}catch(异常类  变量){处理方法}finally{一定会执行的语句}。

    throws Exception在功能上标示该功能可能出现问题。   如果不声明的话在运行时会出现问题。多个catch块出现时父类异常放在最下面,不然 下面的无法处理。   catch要把具体的异常解决细化。给出具体解决方案。

    自定义异常:要向成为异常类,类要继承异常Exception。extends Exception。
    方式:手动抛出自定义异常处处理方式---throw new 异常对象。
    函数内部出现throw抛出的异常对象,那么就要做出处理动作。1:在内部try catch 处理。2:函数上声明。    函数内抛,函数上要声明。
    自定义异常为什么继承exception---- 异常类与异常对象都要抛出,他们具有可抛型,而这个可抛型式throwable独有的。
    ##throws和throw的区别:1,位置上throws使用在函数上,而throw使用在函数内。2,throws后面跟的是异常类,throw后面跟异常对象。
    如果在函数内上抛出RuntimeException,函数上可以不用声明。  如果函数上声明了,调用者不用处理,也可以编译通过。
    RuntimeException及其子类是编译时不被检测的异常。    异常出现时能处理就要标示出来,继承Exception。
    注意:throw也是函数结束标示,与return一样,下面的都执行不到。
    继承RuntimeException  方法不需要抛出异常,主函数调用也不需要处理。
    软件开发是模块式开发,分层处理,需要包,需要异常,需要继承等。
    异常类的父类子类中,子类方法的异常,必须进行try处理,不能抛。
    finally资源关闭,比如说数据库的操作上,数据库需要被关闭。
    异常体系:Throwable 
                       ---Error
                       ---Exception     ----RuntimeException
     总结:当函数内容有throw抛出异常对象,没有进行try处理,必须在函数上声明,否则编译失败。RuntimeException除外。函数上不需要声明。如果函数上声明了异常,调用者需要进行处理,处理方式为可抛可try。
异常的两种:编译时异常,运行时异常。编译时异常在编译时如果没有抛没有try,那么编译失败。该异常被标示代表可以被处理,而运行时异常,在编译时不需要处理,编译器不检查,该异常发生,建议不处理,让程序停止,需要对代码进行修正。
自定义异常:自定义类继承Exception或者RuntimeException   这是为了让该自定义类可以抛,让该类具备操作异常的共性。
格式为:class MyException extends Exception
             {MyException(String msg){
             super(msg);
}
}
另外:当捕捉到的异常在本功能处理不了,可以继续catch抛出。
  权限:protected  保护权限  
权限范围:public protected default private  
一个java文件中 出现两个以上的公有类。
  import  导包  方面包之间的类名调用。    为了避免类重名有包名。定义包名不能重名。包名定义用url定义/
  由于自定义异常类重要,而且个人理解上有困难,在这里摘出代码以便加深理解。
class Throwable
{
	private String message;
	Throwable(String message)
	{
		this.message = message;
	}

	public String getMessage()
	{
		return message;
	}
}

class Exception extends Throwable
{
	Exception(String message)
	{
		super(message);
	}
}
    明天开始学习java中多线程的问题,再接再厉。


















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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值