您的位置:首页 > 职场人生

黑马程序员-学习日记_JAVA中异常

2012-08-09 23:50 666 查看
黑马程序员-学习日记

黑马程序员_JAVA中的异常

------- android培训java培训、期待与您交流! ----------

一:异常:程序出现的不正常的情况就是异常。

在java中异常结构体系的超类基类是Throwable;

二:Trowable:

Error:指的是严重的问题,严重到影响程序的执行。这个问题,不做异常处理。

因为一般出现的问题,处理不了。比如说:内存溢出。必须通过修改程序来解决。

Exception:一般的程序问题,必须通过异常处理的。

三:main方法如何处理异常:

1:main里面如果没有处理异常,那么jvm会采用默认处理方式。

2:自己写代码处理

A:try...catch...finally 捕获处理异常。

基本格式:

try

{

可能出现异常的代码;

}

catch(异常对象)

{

异常的处理方式;

}

finally

{

释放资源;

}

变形方式:

try...catch

try...catch...catch...

try...catch...catch...fianlly

try...finally 没有对异常进行处理

注意:在try对应多个catch时,catch中的异常的书写顺序:如果异常为平级的顺序可以打乱;如果异常存在着子父类关系,则异常书写顺序是将最子类的异常写在方法中的最上边。

B:throws 抛出异常

C:Throwable中的三个方法:

String getMessage():获取异常的信息

void printStackTrace():获取异常的堆栈信息

String toString():或者异常字符串的描述,其实是覆盖了Object中的同toString方法;

四:自定义异常:在方法中用throw关键字类抛出

自定义的异常要继承Exception或者RuntimeException;

代码体现:

class MyException extends Exception或者RuntimeException

{

private String message;

MyException(){}

MyException(String message){

super(message);

}

MyException(String message,int num){

super(message);

this.num = num;

}

public int getNum(){

return num;

}

}

五:RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。

可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。也就是说在自定义异常的时候如果继承的是Exception体系,在自定义方法上必须声明自定义异常。

六:throw和throws的区别:

A:有throws的时候可以没有throw;但如果 throw抛得异常是Exception体系除RuntimeException外的,必须用throws在方法上声明。

B:throws 后边声明的是异常类名;throw后边声明的是自定义异常对象名;

七:Exception和RuntimeException的区别

A:Exception:一般性的错误,是需要我们编写代码进行处理的。

B:RuntimeException:运行时异常,这个我们也不需要处理。

其实就是为了让他在运行时出问题,然后我们回来修改代码。

在用throws抛出一个的时候,如果这个异常是属于RuntimeException的体系的时候,我们在调用的地方可以不用处理。(RuntimeException和RuntimeException的子类)在用throws抛出一个的时候,如果这个异常是属于Exception的体系的时候,我们在调用的地方必须进行处理或者继续抛出。

八:finally代码块:

finally永远被执行,除非退出JVM时,也就是先了执行System.exit(0);

九:finally,final,finalize的区别?

final是一个修饰符,可以修饰类(修饰类后类变成最终类不可以被继承),变量(修饰后成为一个常量),和方法(被修饰后的方法不可以被复写);

finally是异常处理里面的关键字,他其中的代码块永远被执行,除非先执行了System.exit(0);

finalize是Object里的一个方法,他是垃圾回收器调用的方式。

假如catch中有return语句, finally里中的代码会在return前执行。

十:可以同时抛出多个自定义的异常;在自定义异常时建议继承RuntimeException。

------- android培训java培训、期待与您交流! ----------  详细请查看:http://edu.csdn.net/heima/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: