嗯……面试考到了这个,又是一个如无意外

那么接下来就总结吧

一、什么是异常

程序运行过程中发生的异常事件。

RuntimeException通常是因为编程员因为疏忽没有检查而引起的错误。

二、Exception和Error的区别

Exception:

1.可以是可被控制(checked)或者不可控制(unchecked);

2.表示一个由程序员导致的错误;

3.应该在应用程序级被处理;

Error:

1.总是不可控制的(unchecked);

2.经常用来表示系统错误或者底层资源错误;

3.如果可能的话,应该在系统级被捕捉;

三、throw、throws、try...catch...

①throw

②throws

③try...catch...finally...以及语句中出现return的情况

④自定义异常

throw是语句抛出一个异常,语法:

throw e 

例子:

String a = "abcd";
if(a.length()>5) {
  throw new NullPointerException(); //具体的异常需与方法内容相关,否则编译不通过
}
if(a.length()>5) {
  throw new IndexOutOfBoundsException();
}
if(a.length()>5) {
  //throw new IOException(); 编译不通过
}

throws是方法抛出一个异常,语法:

public void doSomething() //具体方法
throws Exception1, Exception2{}//抛出的异常 //示例
public static int calculate(int a, int b) throws ArithmeticException {
  int c = a/b;
  return c;
}

throw和throws的总结:

  throw throws
定义 语句抛出异常 声明异常/方法抛出异常
语法 throw e [方法] throws e1,e2
 位置 用于方法内  位于方法声明后 
使用情况

不能单独使用,

通常与try...catch搭配使用

能够单独使用
编译   对方法中可能出现的异常进行捕获
运行 抛出异常实例 只有出现异常时才抛出
     

try...catch...finally

如果以下部分中出现return,其返回结果将是如何?

public static int method(int a,int b) {

  try {
    int c = a/b; //1
    return 1; //2
  } catch (Exception e) {
    System.out.println("catch"); //3
    return 2; //4
  } finally {
    System.out.println("finally"); //5
    return 3; //6
  }
}

try、catch中任一部分含有return:首先执行try\catch语句中的内容,缓存语句中return的值,最后执行finally中的内容。

因此,

①当finally中return语句时,执行顺序为

· 没有异常时:

//执行顺序 1 → 2(缓存return的值)→5 → 6 (更改了return的值),因此打印结果为
finally
3

· 有异常时:

//执行顺序为:3 → 4(缓存return的值为2) → 5 → 6(更改缓存的return值为3)
catch
finally
3

② 当finally没有return语句时

· 没有异常时:

//执行顺序:1 → 2(缓存return的值)→ 5 → 返回return的值
finally
1

· 有异常时

//执行顺序:3 → 4(缓存return的值)→ 5 → 返回return的值
finally
2

如果返回的不是基本数据类型,可参照这篇文章:https://blog.csdn.net/zoujian1993/article/details/45362931

try..catch..中涉及运算:https://www.cnblogs.com/superFish2016/p/6687549.html

涉及的堆和栈:https://blog.csdn.net/pt666/article/details/70876410/

【Java】异常 —— throw, throws, try catch 相关内容的更多相关文章

  1. Java异常之try,catch,finally,throw,throws

    Java异常之try,catch,finally,throw,throws 你能区分异常和错误吗? 我们每天上班,正常情况下可能30分钟就能到达.但是由于车多,人多,道路拥挤,致使我们要花费更多地时间 ...

  2. JAVA 异常 throw 与 throws

    最近一直throw和throw new …… 获取头部罢工,要彻底生气清楚这件事,他对这个思想精华收集了很多网友.这里摘录. throws全部异常信息throw则是指抛出的一个详细的异常类型.通常在一 ...

  3. Java throw throws try...catch区别

    java里的异常多种多样,这是一种非常有用的机制,它能帮助我们处理那些我们未知的错误,在java里,关于异常的有throw throws,还有一个try catch 程序块.接下来我们挨个看看这几个的 ...

  4. 异常处理(throw,throws,try,catch,finally)

    一.异常 1.定义:程序在运行时出现的不正确的情况. 2.由来:问题也是生活中的事物,也可以被Java描述,并被封装成对象. 其实就是Java对不正常情况进行描述后的对象体现. 3.划分:Java对于 ...

  5. throw throws try catch finally return

    throw throw 语句用于抛出异常,例如 throw new EOFException().   throws 当使用throw 语句抛出checked 异常后,可以不用捕获异常并处理,而是使用 ...

  6. final finalize finally throw throws try catch

    什么是finalize()方法 finalize()方法什么时候被调用 参见网址 析构函数(finalization)的目的是什么 final 和 finalize 的区别 final以下参见网址 f ...

  7. java 异常 throw

    throw UnsupportedOperationException(); //没有支持的操作NoSuchElementException(); //没有这样的元素

  8. Java 异常分析

    Java 异常分析 本文是对以下内容的分析: Java异常设计 Java 异常分类 Java异常可以告诉什么问题 Java异常处理最佳实践 Java Exception 是为了处理应用程序的异常行为而 ...

  9. Java异常01——捕获和抛出异常

    捕获和抛出异常 异常处理五个关键字 try , catch , finally , throw , throws try catch finally(快捷键:选中要要监控的代码语句 快捷键: ctrl ...

随机推荐

  1. spark RDD运算机制

  2. maya2014安装失败如何卸载重装

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  3. 性能测试工具Jmeter10-Jmeter集合点与关联

    集合点 操作步骤: 注意:集合点要放在需要集合的元件前面 关联 正则表达式提取器 配置说明 引用名称:下一个请求要引用的参数名称,如token,则可用${token}引用它 正则表达式: () 括起来 ...

  4. DedeCms中Channel用typeid无效

    DedeCms中channel 用typeid调用无法达目的吗?请换成type试试! {dede:channel type='son' typeid='19' row='1'} <a href= ...

  5. javascript document.referrer 用法

    document对象的referrer属性,返回导航到当前网页的超链接所在网页的URL. 举例: 1. a.html文件内容如下: <a href="b.html">浏 ...

  6. 工作采坑札记:3. Spark中es-hadoop插件异常解决

    1. Es-Hadoop异常: org.elasticsearch.hadoop.EsHadoopException: Could not write all entries [615/300864] ...

  7. Linux 安装 webmin

    下载webmin的rpm包 yum install webmin-rpm systemctl start webmin 即可

  8. 装配bean,基于xml

    一.bean的实例化方式 1.默认构造 <bean id="" class=""></bean> 必须提供默认构造方法 2.静态工厂 用 ...

  9. 使用java的 htpUrlConnection post请求 下载pdf文件,然后输出到页面进行预览和下载

    使用java的 htpUrlConnection post请求 下载pdf文件,然后输出到页面进行预览和下载 2018年06月07日 10:42:26 守望dfdfdf 阅读数:235 标签: jav ...

  10. ssh无法连接到虚拟机linux系统

     一般ssh连不上虚拟机是防火墙没有放行22端口,用如下命令:(安装ssh服务时应该是放行了22端口的,如果没有则需手动放行22端口)   放行22端口: sudo iptables -I INPUT ...