一、java异常机制html
//代码区}catch(Exception e){//异常处理}java
try语句: try语句用大括号{}指定了一段代码,该段代码可能会抛弃一个或多个例外。catch语句:catch语句的参数相似于方法的声明,包括一个例外类型和一个例外对象。例外类型必须为Throwable类的子类,它指明了catch语句所处理的例外类型,例外对象则由运行时系统在try所指定的代码块中生成并被捕获,大括号中包含对象的处理,其中能够调用对象的方法。catch语句能够有多个,分别处理不一样类的例外。Java运行时系统从上到下分别对每一个catch语句处理的例外类型进行检测,直到找到类型相匹配的catch语句为止。这里,类型匹配指catch所处理的例外类型与生成的例外对象的类型彻底一致或者是它的父类,所以,catch语句的排列顺序应该是从特殊到通常。也能够用一个catch语句处理多个例外类型,这时它的例外类型参数应该是这多个例外类型的父类,程序设计中要根据具体的状况来选择catch语句的例外处理类型。jvm
try
语句包含了由一个或者多个语句组成的try
块, 和至少一个catch
子句或者一个finally
子句的其中一个,或者两个兼有, 下面是三种形式的try
声明:try...catch
try...finally
try...catch...finally
Throwable类是整个异常体系类的父级类,固然最终追根溯源到底的父类固然要归于Object类。Throwable类实现了Serializable接口,表示Throwable能够进行序列化,继承自Object类,他的子类主要是Error和Exception类还有一个StackRecorder类(不是很常见)。函数
解释一post
throws和try catch区别:spa
1.throws是代表方法抛出异常,须要调用者来处理,若是不想处理就一直向外抛,最后会有jvm来处理;设计
2.try catch 是本身来捕获别人抛出的异常,而后在catch里面去处理;code
通常状况下,第二种状况要好一些,这样能够清楚地看到异常的缘由,并加以修正。htm
解释二对象
对于异常有两种处理方法
1、要么声明异常,也就是在方法名后面加上throws exceptionname,..., 方法自己只是抛出异常,由函数调用者来捕获异常。 若产生异常,异常会沿着调用栈下移,一直找到与之匹配的处理方法,若到达调用栈底仍未找到,程序终止。
2、要么捕获异常。经过try catch方法,catch子句中放置处理异常的语句。
联系二:对于会以为会有异常抛出的程序块,用try{}包住,而后用catch来抓住这个异常,在catch中对异常作处理, 在try中若是有异常的话,程序会转到catch而不会中断,一般这两个是配合使用的,若是你不想由于程序有错,而抛出一大堆异常的话,你就把该程序try起来,try和catch只能获取程序运行时引起的异常,而throw语句能够引起明确的异常,程序到了throw语句这后就当即中止,不会执行后面的程序,