JAVA——Exception&Error

在万物皆对象的JAVA中,先让我们看看Exception和Error的地位吧:

aaarticlea/gif;base64,R0lGODlhhgExAfcAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwMDcwKbK8AAAAAgICBAQEBUVFRgYGCAgICgoKDAwMDc3Nzg4OEBAQEhISFBQUFhYWGBgYGhoaGxsbHBwcHR0dHh4eH9/f4eHh4+Pj5eXl5+fn6enp6+vr7e3t7+/v8fHx8/Pz9fX19/f3+fn5+/v7/f39////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/78KCgpICAgP8AAAD/AP//AAAA//8A/wD//////yH5BAAAAAAALAAAAACGATEBhwAAAIAAAACAAICAAAAAgIAAgACAgMDAwMDcwKbK8AAAAAgICBAQEBUVFRgYGCAgICgoKDAwMDc3Nzg4OEBAQEhISFBQUFhYWGBgYGhoaGxsbHBwcHR0dHh4eH9/f4eHh4+Pj5eXl5+fn6enp6+vr7e3t7+/v8fHx8/Pz9fX19/f3+fn5+/v7/f39////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/78KCgpICAgP8AAAD/AP//AAAA//8A/wD//////wj+AF0IHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNO6jACgrdu3cOPKnUu3rt27cCOo3csVwFS/fANfBRyVsODDhf8iXgzV8FPHjCMfhdyUsuTLQS0v1Yy5807OSUF7Hl1T9GTSqHmaNro6tWuVrYnGfk2b5Gyht2vr9ij6LUHIuW3vHs4StGHAbS0Gn7icuHPmCoELbN48YvXn2Btylu7Cb/LpA93+hv8uvuT17OgRbjeIHHl39+AJwzefvj7H9QXnw4fbnf3J8/bZh99v4BU4X4EEmgRggOkNGB6C++Xnn4IMVkiRcQn2ZyCEGmroHX0WhvhQb+WNJ5+JKE634EIrijjcgi1qFKOLtcF404w0vnbedzbhmGNqPsoU5I+jDQmTkURihqRLSyYZWZPFOZkklCtRKaVgVqaU5ZV7GcmCCS1tyWVaDOBl5plopjkXA2O2uZEJFLgpZ1EpQDDnnUGp8ACefPakZ5+A5vRnoITStIIDhSYqpKKMMtnoo7BBKimFk1YakgMrWKppRw+osOmnGXUK6qgViUrqqRBBkAKqrDZEAZj+rcaK0Kuy1loQrbbmimuutVpAAq+2YiACsLUKS6ysxh7barLKouqBB82y+my0zkJLLanTXjsqCBtoO6oIGHgLKrjifkpuuZqei26AbKnp7rvwvqXXul+JSSm9XdkLIr59KcZvv1Lp+2+Y/g6clcAjIWywlgUvbJXCIUHs8L6NTTxYwxYHjHHGFSckF4IfcQcdxxsn6B6PvDmGsnUklzzhgxG/LJHELfOmnYQ8eteezjy/13N8J6rYGs0133fzbyfn/GDQ/QVN3oYgR1d0xyxKCDWHTKvMoYe+HT11ZV5vfRzMH34otH5Xj/i1U6ZpnbbTTXtI9twdqr02U21bLTf+zFyryDfae9ct9d2bMVSieHEhPTbI/Pks9OMOEU14RZIbPXloLl+eWeaa/1T5Rp93HjnnoqtGeuk6hZ6R6qh7fHrrN74Oe2kXsbBqTqzPXlCZ8fbuO15s6k4VCxhUkClIvwrPVwkQDCuSBxi0oDxaxBtfkggWsDB9WSI84LxJJVDg6fZgrVABBtqnhAIFKJDvlQgQlNCSChTI735W5qP/EgsWfH8/VfCzH0xagAFr/S8q+UvfTKAnvQM65QMPEGBNsKdAByIlBRPoQANxEr7xWdAoH4jACXqyvvZ9cCgY1OBP6CfBE/YkhCMMCv/858KcpHCDQSGgAWtokxZ0AAL+MTQKA3lYkxNE4ANLoSARY+LDCdxuKR1cokuMiMSnlFCKKmniE5/CQiyehIpVmaEXR0I8J15Fh2MECfNoaJUhplEj1TveVpT4xousESxRrONE4iiWK+oRInckSxf/yBDzWc8sYiRkQgKoFjQqsiAJDIwbL9eu31nykm6Z11DoOLncKacklcSkKHunSU15knIUewyoTnmhVLJtlbK7CCtHtqlZzsyVYPuULVkmHI3pMpaf9GUtgYlKYZqSmK00pqV2CREkMdNuw/RY4jbXy8T8cnBR64kzozPNkIHkmYzBEGtwmSHBYcRI4FyMOMeWHJ1BrmlZ2iY2vZkwWHIzZ+T+URrQxCRP13UIcfk8ztMCCiGlrWx01/Tn4hhHtyhVUz0l+qfYTBSh92DtabyMpj/1Vje4EeyhBzlQ3LLJH48GDnDNtOdGy7lQkTIMpDLjqMgmejWUQvOY8xwpQ9MWKZhylEBM4xtNT7q1lCY0pIkrT0SVetD/kFOoOgXciTBatqHeJp2IwWrVfEpRgP5sqQOVz1cJGtGwLROZtORqPY+qSrXarKcapZpIllTWpz5Kqzn9Jlr5hNeVxkyZleqreuyKOba+0q2FjWtb12pNxR6WsXI9K2Dp2VhN8W6UmH1X8EZy2cx69kybfeROQtCBibQgAhuQo2ir0gITgAADDQD+AKwk0gIQPMADFVwtU770gQtAYAEU0IAEOICRFnjgtjjULVFWYAIPWOABDKBAB0awKhZQYAQbYcFxQZBc5e5EBSXwQAUc4AAKeIAEHhSICiYQxI2sYAPN864NSeABCjDgARXwQAlUWxAURGCLHVEBBh6QPPm+BAUj6AAFFgABC3jABLlFCAkmEGGPqMACEWihgUlyAhFsgAIAiMAFPmCC7i4kBBYwMUhQUIFdbdgjJghBBiYAgAlgAASzncgGMrASOFXAhC+2SGtfyxYKZCAE7a1ICy4AApeUIAIWAHCQF8Jb3wJ3AyIAMhyvGxMSQAAD6Z0yQZjrXOhKl7ohWW/+kl8Cv9SKGbziJa950VsS/0p5gLbtQIUJmQL62he/+uUvSSa8ZyZC0AMqxiKCFcxgB0O4JShO9Ey0+wDuerHDHw7xiEsckx0D5b3eq2GMZ1zjG+eYiUweygoGjF33DRkDRT7ymifN5aKo4AIRKHDrqvxbCmBZy4Jib1JQYAEXE47Mz43udO+sEzszBU7s+xqcx1ve84YZKIR+igmgzGx+9bm+983vfpMSaal4Gcz/WvSCG/zgQhPF01Xpnpu9hWkQi5jEkjbKkpuMFdtuwN2tGjWNbYzjMNY6K7W9LcA19epYIzkravaKdiFg6VFp18q+znJXnF2+DTwgBKNCgQf+0AyWbI9lBRl4QKtfXG6z3DrXXAnlZ2dO83iVUibwTguxJ3Dqqgg2dgKRec2H3pabJ+UEFIj2xXYT1MeGROhEJ7rR4VojqOZyrlQR2M97ZHW8ITaxH9VN06/+18m+VOxdLxxkI1ulF6VdKejM+pHcnk2vr32xYa963dWO9b1aDu17h/vXkaJ1aXYtmdbp5lspCxqoR33mU89oZR062LdXPpiBR3zfzflTsmue7VSX2WyuE6R+ihP0kj+I4x8PebcuLp9Ag1zS/Jaik7aToClyp+P+adDgjL3zdsf85SdPWaQudWlU9RtTa3q2DEmVolDDKDxd6rXT4/3zMb1+8Sf+5DaiSvT7XFNq1MxmzpI29PmZ36j1nY594Ht++3prqVWL6lLNLBSqJkU/5w1n+f0LXpZbZXZ/F1JClX/zx1P7R34z9X0GCH5G5X/pdxoAmFfsB38sRTbtNDdmkzVDFR/nd1EbsoEfeEvpt3Xl1H4nqH2Lxx4oA3s9A1A+41W7x1QldXs7ozixp3y4J4MZtX7vR4J+pYIdYYIE2HYlKIA3VYRIKCMPQ3k+GHzFFIQVuIKF0VTV9IR8F4XDh3oDSBu/l4JQiIL9B3Z6xXT9R4QRyH8U+INDSHcQ+IYSKHxKSHxUqCNnuIRmlX1T2IZmeIR0mHp6yIZdaId+yIVJGIj+YWiBQHKHf/iAWyiEHNFZrDeJrLdZWPh/coiIWUgokvgxjXiI7peIgYWHaiiFgggpaAiHDNGJimeId0WKEwiLiZKKced3eEKLgxeHjiWKfCiLhYKLd7eHkgKMm/eJr2iMqyN3KgWJoKOMn8KKlIhZoVWGvihmuxONRDeN1riN3NiN3viN4BiO4jiO5FiO5niO6JiO6riO7NiO7viO8BiP8jiP9FiP9niP+JiP+riP/NiP/siNd3EfdBF/+Pc3ojeHJOWJYChQAzk7Y7cilsEd1FdRJygyJhWI3aeJqCNW4veIpRh/AYmRvtE4vIeAFkVSb3d/sNMeRZUfV9WQb8j3M3WBNXRTVRsofroXgwq5U8JTVQ4Yiqa4N55IGRG5NBiYgTnZVVa4dzupOwIFhmkYihmZgDr1N/dnUxoYgOqnPCx5kvbHHHPBgiQ5Hi6pOLdHfwopkx0VkrQ3hoTTkbuHkEnoIKboURHSdK+3hnbhlGUZeKMXknupk2H5kzcYNwoomFTZG1CpOWIllZ+XkSrpgS8zlbR3MjIlHV8ZOA7Zl/7nez+VlxY5mZfJgHJJkKIZlWtDl7V3iJBpdVPZOPvBgdyXUy0omag5NWyZjJpIlE0Fl43JOE1phXXVlm75j8Z5nMiZnMq5nMzZnM75nNAZndI5neQTEAA7" alt="avatar">

可见Exception和Error都继承自Throwable类,所以二者既有相同也有不同之处。相同之处就是他们都是程序出错导致的,或说程序不正常运行才会实例化的类,不同之处就在于产生他们的的程序的出错原因不同,下面就来详细比较一下。

一,Exception&Error

从命名来看Error貌似比Exception要严重一点,事实确实如此。Error产生的情况一般是指不大可能出现且不可预料的情况,如JVM本身不正常,内存溢出,栈溢出等一些比较严重,会使程序终止的情况。而Exception通常是一些可以预料的不好的情况,如类型转换失败,多线程数据插入失败等,虽然程序出错,但可预料,一般也不会使程序终止。

二,未受检查异常和受检查异常

1,Error和Exception的子类RuntimeException都是未受检查的异常,也可以叫运行时异常,因为它们都是不可预料的,在程序运行时才会出现的异常。

2,Exception的其他子类是受检查的异常,是指程序员可以在代码中预料和捕捉到的程序异常,这也是程序员重点关注的地方。

三,异常处理

要搞清楚异常处理就得先知道try-catch-finally-return这几个关键字的语法和使用,它们在程序中的语法位置如下:

try{
//可能会产生异常的语句
}catch(Exception e){
//产生异常后才会执行的代码
}finally{
//不管有没有产生异常,在执行完上面两个代码块后,此处代码都会执行
}

画个流程图更容易理解,如下:

aaarticlea/png;base64,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" alt="avatar">

注意:还有一个return的用法很多人会出错,当try-catch-finally中出现return语句时,要注意代码执行顺序,在代码中讲解,如下:

public int f1() {
int res=0;
try {
res=1;
}catch(Exception e){
}finally {
res=5;
}
return res;
}
/*上面这段代码的执行结果按照前面的流程图推一下很容易知道f1()方法的返回值是5
但如果是下面这种代码形式呢
*/
public int f2() {
int res=0;
try {
res=1;
return res;
}catch(Exception e){
}finally {
res=5;
}
return res;
}
/*f2()的返回值应该是1,因为在try中执行到return语句时程序会先将要return的值入临时栈,此时finally中执行的操作改变res的值,但却不会影响到存在临时栈中return的值。
再看下面这种情况
*/
public int f3() {
int res=0;
try {
res=1;
return res;
}catch(Exception e){
}finally {
res=5;
return res;
}
}
/*此时f3()返回值应该是5,因为程序会把finally中的return值替换掉try中的return值
*/

四,throw & throws

throw : 将产生的异常抛出(强调的是动作),抛出的既可以是异常的引用,也可以是异常对象。(位置: 方法体内

throws : 如果一个方法可能会出现异常,但没有能力处理这种异常,可以在方法声明处用throws子句来声明抛出异常。用它修饰的方法向调用者表明该方法可能会抛出异常(可以是一种类型,也可以是多种类型,用逗号隔开)(位置: 写在方法名 或方法名列表之后 ,在方法体之前。)

五,自定义异常

可以继承Exception或Throwable类来定义自己的异常类型

public class MyException extends Exception{
public MyException() { }
public MyException(String msg) {
super(msg);
}
}

异常抛出方法和自带异常一样,如下

public int exceptionTest(int a) throws MyException {
if(a<10) {
System.out.println("程序正常");
return a;
}
else {
throw new MyException("程序异常");
}
}

以及捕获异常如下

public static void main(String[] args) {
Main m=new Main();
try {
int res=m.exceptionTest(11);
} catch (MyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

JAVA-Exception&Error的更多相关文章

  1. JAVA基础 Exception, Error

    转载请附上本文地址: http://www.cnblogs.com/nextbin/p/6219677.html 本文参考: JAVA源码 http://swiftlet.net/archives/9 ...

  2. java 区分error和exception

    1) java.lang.Error: Throwable的子类,用于标记严重错误.合理的应用程序不应该去try/catch这种错误.绝大多数的错误都是非正常的,就根本不该出现的.java.lang. ...

  3. java中Error与Exception有什么区别

    Error类和Exception类都继承自Throwable类. Error的继承关系: java.lang.Object  java.lang.Throwable      java.lang.Er ...

  4. Java Exception 和Error

    (事先声明:该文章并非完全是我自己的产出,更多的是我个人在看到资料后通过理解并记录下来,作为自己阅读后的一个笔记:我现在试图对自己多年工作中的知识点做一个回顾,希望能融会贯通) (此文参考<Ja ...

  5. Exception in thread "main" java.lang.Error: Unresolved compilation problem

    初学java,使用eclipse编译时,可能会遇到如下图所示的编译错误(Exception in thread "main" java.lang.Error: Unresolved ...

  6. Atitit.  Exception in thread "main" java.lang.Error: Unresolved compilation problem:

    Atitit.  Exception in thread "main" java.lang.Error: Unresolved compilation problem: 1.1. ...

  7. java中error和exception的区别

    转自:https://www.jianshu.com/p/e8bbee3c1c4a Error类和Exception类的父类都是throwable类,他们的区别是: Error类一般是指与虚拟机相关的 ...

  8. Java异常处理总结Exception\Error

    Java异常处理总结Exception\Error 2012-12-28 08:17:17|  分类: JAVA |  标签:java  |举报|字号 订阅   Java异常处理总结          ...

  9. OFBIZ bug_ControlServlet.java:233:ERROR

    错误日志: [java] 2014-09-26 10:12:17,031 (http-bio-0.0.0.0-8443-exec-5) [ ControlServlet.java:233:ERROR] ...

  10. OFBIZ bug_ControlServlet.java:239:ERROR

    错误日志: [java] 2014-09-23 00:11:34,877 (http-bio-0.0.0.0-8080-exec-4) [ ControlServlet.java:141:INFO ] ...

随机推荐

  1. M公司的回忆录——L公司

    2013年3月笔者回国的第一站便是这人称有福之州的福州.受我兄弟之邀笔者来到了L公司.而这也是笔者与M公司相遇的前缘.此时的L公司只是一个刚起步的创业公司.与所有创业公司一样子——创业初期存在着很多问 ...

  2. python的WSGI接口

    WSGI:Web Server Gateway Interface. WSGI是为python语言定义的web服务器和web应用程序或框架之间的一种简单而实用的接口.wsgi是一个web组件的接口规范 ...

  3. Nagios服务器端配置文件详解

    Nagios服务器端安装部署详解见:http://www.cnblogs.com/ginvip/p/6505948.html Nagios 主要用于监控一台或者多台本地主机及远程的各种信息,包括本机资 ...

  4. 新.Net架构必备工具列表

    N多年前微软官网曾发了.Net下必备的十种工具,N多年过去了,世异时移,很多东西都已经变化了,那个列表也似乎陈旧了.而且,该文也只是对十种工具独立的介绍,显得有些罗列的感觉,是不是每个工具都是同等重要 ...

  5. Flex 界面初始化 自定义 预加载 类!

    说明: 自定义界面初始化过程提示:初始化...,初始化完毕,加载完毕! ZPreloader.as package com.command { import flash.display.Graphic ...

  6. 洛谷 P1525 【关押罪犯】种类并查集

    题解 P1525 [关押罪犯]:种类并查集 前言: 在数据结构并查集中,种类并查集属于扩展域并查集一类. 比较典型的题目就是:食物链(比本题难一些,有三个种类存在) 首先讲一下本题的贪心,这个是必须要 ...

  7. bzoj 1432 数学(找规律)

    我们可以发现所有的情况(除n=1时),都可以找到两个交叉的直线,就是第一层的那 两个线段所在的直线如图中左 那么我们以这个为准,两边对称着加直线,会得到右图,每一层是折线,且每 加一对儿就多两条线段, ...

  8. Route Between Two Nodes in Graph

    Given a directed graph, design an algorithm to find out whether there is a route between two nodes. ...

  9. linux调试工具glibc的演示分析-core dump double free【转】

    转自:http://www.cnblogs.com/jiayy/p/3475544.html 偶然中发现,下面的两端代码表现不一样 void main(){ void* p1 = malloc(32) ...

  10. grep和sed匹配多个字符关键字的用法

    GNU sed和UNIX sed 写法不一样 匹配多个关键词,打印出匹配的行,效果类似于 grep grep hello\|world file > output 或者用扩展正则 grep -E ...