java中的throw new Exception();和throw e;异常抛出
java代码如下:
package com.imooc.exception;
public class Throw1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Throw1 test = new Throw1();
try {
test.method();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("我们将对抛出异常的“方法”:method作出处理。");
e.printStackTrace();
}
}
/**
* @throws Exception
* 声明抛出异常的方法method:如下:可知此method方法存在2处异常。
* 1.一处是方法的算术异常。(n = n/m;)
* 2.一处是调用会抛出异常的方法,来抛出一个异常。(throw new Exception("m不能为9");)
* *如下:我们捕获了throw new Exception("m不能为9");并做了异常处理。
* 则main方法中的try-catch会忽略已经处理过的异常,而去捕获没有经过异常处理的异常。(如:n=n/m算术异常)
* *覆盖性:
* 如果,方法体中存在'throw new Exception();'语句或者catch中存在'throw e;'语句。
* 则方法method抛出的异常即是此条语句异常,而不会抛出方法中的算术异常。
* 因此,如果,要使用'throw new Exception();'或'throw e;'语句,可先在方法体中进行捕获异常并处理。
*/
public int method() throws Exception{
int n = 100;
int m = 10;
while(m>-1){
m--;
n = n/m;//***抛出一个分母为0的算术异常
try {
if(m==9){
throw new Exception("m不能为9");//***抛出一个新的Exception异常'实例'.
}
} catch (Exception e) {
// TODO: handle exception
System.out.println("我们将对抛出异常的“语句”:throw new Exception('m不能为9')作出处理。");
e.printStackTrace();
//throw e;或者throw new Exception();//***抛出异常e实例或新的Exception实例
}
}
return n;
}
}
/**
* 总结:
* 1.throws是方法抛出异常。如: public int method() throws Exception{//code.....}
* a.如果,方法体中有异常并使用try-catch捕获异常并处理,则方法不会抛出异常。
* b.如果,方法体中有异常(如:算术异常)且没有捕获并处理;则此方法抛出的是方法体中的异常。
* c.如果,方法体中使用‘throw new Exception();’语句抛出一个新的Exception实例;则即是方法体多出一个这样的异常,
* 方法抛出的是此语句异常。
* d.如果,方法体中对异常进行了捕获却没有处理,且在catch中使用'throw e;'语句抛出异常,则即是方法抛出的是try中的异常。
*
* 2.throw是语句抛出异常。
* //***抛出异常e实例或新的Exception实例
* a.catch中的throw e;
* b.方法体中的throw new Exception();
*
* 总之,两者的作用就是简单的抛出异常。
*/
注:此博文为日常学习总结,如有不当之处,请谅解!欢迎指出文章有误之处,谢谢。
java中的throw new Exception();和throw e;异常抛出相关推荐
- python 使用raise语句主动抛出异常(Exception)、将异常抛出给上一级
主动抛出异常 示例: 参考文章:使用Python提供的raise语句主动抛出异常 将异常抛出给上一级 示例: # -*- coding: utf-8 -*- """ @F ...
- java的异常抛出throws和throw的简单使用
java的异常抛出throws和throw的简单使用 参考文章: (1)java的异常抛出throws和throw的简单使用 (2)https://www.cnblogs.com/Anxc/p/113 ...
- java java 检查型异常_如何整合Java中的有效性检查和异常抛出?
我正在实现一个接口,该接口定义了一种方法,如果参数无效,该方法可以引发异常.有效参数的构成取决于实现类.该接口还定义了一个isValid()方法,该方法可用于检查参数,但返回布尔值而不是引发异常.我发 ...
- Java:异常的概念及分类、异常的处理、异常抛出及自定义异常
异常概念 异常分类 Java异常处理机制 try ...catch...finally throw和throws 自定义异常 一.异常的概念 什么是异常? ...
- java 捕捉的异常抛出_Java异常抛出和捕获
Java中把非正常情况分为两种,异常(Exception)和错误(Error). 异常.png Error:一般是指与虚拟机相关的问题(虚拟机错误.线程死锁等),这种错误无法回复或不可能捕获 Exce ...
- java 抛出异常的作用_Java 基础之异常抛出
Java 基础之异常抛出 Java,基础,异常抛出 在 Java 里,除了对异常的捕获外,你还可以抛出异常,还可以创造异常.抛出异常的作用就是告诉你的调用者,程序出现了不正常的情况了,得不要期望的结果 ...
- CC00069.bigdatajava——|Java集合类库.V05|——|Java.v05|异常机制.v50|异常抛出|补充|
一.异常抛出 ### --- 基本概念--> 在某些特殊情况下有些异常不能处理或者不便于处理时, --> 就可以将该异常转移给该方法的调用者,这种方法就叫异常的抛出. --> 当方法 ...
- JUnit中测试异常抛出的方法
最近在做TWU关于TDD的作业,对JUnit中测试异常抛出的方法进行了一些学习和思考. 在进行单元测试的时候有的时候需要测试某一方法是否抛出了正确的异常.例如,我有一个方法,里面对一个List进行读取 ...
- Swift 中 throws 异常抛出
一.异常抛出关键 throws 定义在函数结尾 如果函数有返回值 定义在 返回类型前如 : func throwDeliver(num:Int) throws ->String 二.定义方法 / ...
最新文章
- html标签在html页面正常显示而不被解析
- java读取项目资源文件的方法
- Windows内核HAL相关学习
- 《Spring实战》读书笔记--SpringMVC之forward与redirect
- Teams Bot库的JSON
- mac 大写锁定延迟_延迟分析中的案例研究:锁定与同步
- 我对Spring的理解
- java 获取插入数据的自增长id
- bzoj 3380: [Usaco2004 Open]Cave Cows 1 洞穴里的牛之一(状压+BFS)
- 清北第一套题(zhx)
- XenApp_XenDesktop_7.6实战篇之十七:XenApp应用程序交付
- oppo升级android,OPPO Real R807升级Android4.0教程
- catia 快捷键 激活零件_CATIA常用快捷键
- NLP自然语言处理系列-时间序列数据分析-趋势性、周期性、自相关性、冲量、差分、移动平均误差计算
- 计算机组成原理课程设计 从1加到10,带进位左移三位,计算机组成原理课程设计--乘除法运算.docx...
- LED背光源照明技术迅速发展
- 11 个很少人知道但很有用的 Linux 命令
- linux查看压缩文件的大小,Linux下不解压压缩文件如何直接查看某个文件大小
- p8刷原生android,【EMUI3.1全局】原生Android M + IOS 7完美结合,听说跟P8更配哦
- Android如何减少apk大小