异常:
自定义异常:
在java对一些常见的情况进行描述。形成了异常体系,
但是在自定义的项目发生的特定问题,java并没有针对的描述
所以按照java的面向对象思想,也可以对问题进行描述。
1,定义一个类继承Exception。
1.1为了让自定义的类具备可抛性。
1.2为了让自定义的类可以获取Throwable中的方法。
2,如果要给自定义异常定义信息描述。
可以通过构造函数将信息通过super语句向上传递。
class NoException extends Exception
{
NoException()
{
super();
}
NoException(String message)
{
super(message);
}
}
class Demo
{
void show(int x)throws NoException
{
if(x<0)
throw new NoException("错错");//throw new RuntimeException("异常信息");
}
}
如果函数内有throw进行异常抛出。那么函数上一定义要有对应的throws标识。
特例情况:
如果函数内容throw抛出的是RuntimeException或其子类。
那么函数上可以不用throws标识。
因为RuntimeException是运行时才会检查的异常。
编译时期不会被检查。
而其他的异常,都是编译时期的被检查的异常。所以必须要标识,否则编译失败。
在自定义异常时,同样也可以继承RuntimeException。
异常处理的规则:
1,调用被throws标识的函数时,需要对该函数进行处理.
a,继续抛出。
b,通过try catch finally处理。
2,当调用的功能抛出多个异常时,处理中的如果通过try catch,需要定义多个与之对应的catch进行处理。
多catch出现时,一定要注意,父类的catch向下放。
3,当子类覆盖父类时,只能抛出父类异常的子类,或者异常的子集。
class Fu
{
void show()throws A,B,C{}
}
class Zi extends Fu
{
void show(){}
}
特殊:如果被覆盖的方法没有抛出异常。那么子类覆盖时,也不可以抛,但子类中还出现了异常。那么只能trycatch。
4,函数内只要发生了异常,没有被catch,就必须要标识。当然,运行时异常除外。
格式特点:
try+catch(多个). try+finally{}
try+catch+finally{}
只有catch是对异常的处理。没有catch就是没有处理异常。
finally:该代码块中定义的语句一定会被执行。
什么时候用呢?
当关闭资源时,需要将关闭动作定义在finally当中。
关闭数据库资源,关闭系统资源。
只有一种情况读不到,System.exit(0);
void checkUser(String name)
{
if(name.equals("abc"))//if("abc".equals(name))//if(name!=null && name.equals("abc"))
System.out.println("ok");
else
System.out.pirntln("no");
}
异常的分层封装:
show()throws NoException
{
try
{
throw new SQLException();
}
catch(Exception e)
{
throw new NoException("数据操作未成功");
}
}
分享到:
相关推荐
java异常总结java异常总结java异常总结java异常总结java异常总结java异常总结
CORBA异常总结.pdf CORBA异常总结.pdf
Java常见异常总结,不用在害怕自己没见过的异常了
Java基础编程异常总结
java常见异常总结,这是在开发过程遇上的异常信息处理方式,相信对大家开发有一定的帮助!!
SSH异常总结.doc SSH异常总结.doc SSH异常总结.doc
java异常总结.pdf
JBPM4运行时错误异常总结,本人在jbpm4学习中遇到过的最常见的异常,以后可能还会发布有关资源,如发现整理有误,请指教!
python烟花代码-26-异常总结.ev4.rar
java常见的运行时异常总结[文].pdf
本文档总结了工作中经常遇到的axis2异常问题该如何解决,本人亲自实践过,可以保证其正确性
总结的常见的JAVA异常。没有涵盖全部异常,但是包括了最常见的饿18中异常
总结的jsp常见异常 ,希望对大家有帮助,希望大家多多上传资料!这个网站很好的~
python异常总结,包括常见的AssertionError、KeyError、TypeError、ValueError等Python异常
NULL 博文链接:https://jiaguwen123.iteye.com/blog/1356153