------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中多线程的问题,再接再厉。