标签:style blog http ar io color 使用 sp java
背景介绍:
在用到java的一些类库时,会发现有些类库用的时候必须要加上try-catch或者throw的关键词。
抽象化描述这个问题:
问题抽象:
1 类库地作者可以检测出运行中出现地问题,但是不知道怎么处理这个问题。
2 使用这个类库地用户知道怎么怎么去处理这个问题,但是不知道怎么检测他们
解决:
异常(exception)的作用就是解决这个问题。
1如果一个方法不能决定怎么处理程序中非正常流程出现的问题,那么它可以把这个问题丢(throw)给调用者来处理。
2 如果调用者不愿意处理那么可以继续丢(throw)给下个调用者,或者如果愿意处理这个问题 那么就接收(catch)这个
问题,然后进行处理。
java异常hierarchy
1 注意:我们所关注的异常是指非error和runtime的异常,也即checkedException(可以被编译器检测的异常)
2 error通常是指无法恢复的错误,比如超过系统性能的上界。这个error是由系统抛出的。
3 RuntimeException是由程序员代码的问题 比如空指针
具体操作:
java中的checkedException是个对象。
所以抛出异常时,需要先选定合适的异常种类,然后生成实例抛出
try
{
// code
}
catch (ExceptionType e)
{
// exception handling code
}
运行流程:
当代码遇到异常时,它会忽略其后的代码,直接跳到其相应的catch中运行
完整的实例:
除0异常处理
public class JavaExceptionTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
try
{
double a=1/0;
}
catch(ArithmeticException e)
{
System.out.println(e.getMessage());
}
}
}
java的异常类别:
http://www.tutorialspoint.com/java/java_builtin_exceptions.htm
java 异常教学文档
http://docs.oracle.com/javase/tutorial/essential/exceptions/index.html
标签:style blog http ar io color 使用 sp java
原文地址:http://www.cnblogs.com/AlexWei/p/4170871.html