throws语句

throws总是出现在一个函数头中,用来标明该成员函数可能抛出的各种异常。对大多数Exception子类来说,Java 编译器会强迫你声明在一个成员函数中抛出的异常的类型。如果异常的类型是Error或 RuntimeException, 或它们的子类,这个规则不起作用, 因为这在程序的正常部分中是不期待出现的。 如果你想明确地抛出一个RuntimeException,你必须用throws语句来声明它的类型。

throw语句

throw总是出现在函数体中,用来抛出一个异常。程序会在throw语句后立即终止,它后面的语句执行不到,然后在包含它的所有try块中(可能在上层调用函数中)从里向外寻找含有与其匹配的catch子句的try块。

以下为简单使用代码实例:package net.form1;

public class Throws {

public static void main(String[] args) {

Throws thr = new Throws();

thr.compute();

}

//定义可能会抛出异常的方法

//如果调用该方法,需要使用 try..catch处理异常

public void divider(int b,int c)throws Exception{

if(b == 0 || c == 0){

throw new Exception("除数不能为0");//抛出一个异常

}else{

System.out.println("相数相除的结果为:"+ b / c);

}

}

//可以处理异常的情况

public void compute(){

try{

this.divider(0, 3);

}catch (Exception e) {

//捕获divider方法出现的异常

System.out.println(e.getMessage());

}

}

//处理不了异常的情况

public void noset()throws Exception{

//...该方法如果处理不了异常,在次申明 throws ,将由调用noset()的方法处理异常

this.divider(0, 3);

}

}

自定义异常类package co.form1;

public class DrunkException extends Exception {

public DrunkException(){

}

public DrunkException(String message){

super(message);

}

}

使用自定义异常类package cn.form1;

public class ChainTest {

/**

* test1():抛出“喝大了”异常

* test2():调用test1(),捕获“喝大了”异常,并且包装成运行时异常,继续抛出

* main方法中,调用test2(),尝试捕获test2()方法抛出的异常

*/

public static void main(String[] args) {

ChainTest ct = new ChainTest();

try{

ct.test2();

}catch(Exception e){

e.printStackTrace();

}

}

public void test1() throws DrunkException{

throw new DrunkException("喝车别开酒!");

}

public void test2(){

try {

test1();

} catch (DrunkException e) {

// TODO Auto-generated catch block

RuntimeException newExc =

new RuntimeException(e);

//newExc.initCause(e);

throw newExc;

}

}

}

Exception:在程序中必须使用try...catch进行处理。

RuntimeException:可以不使用try...catch进行处理,但是如果有异常产生,则异常将由JVM进行处理。

对于RuntimeException的子类最好也使用异常处理机制。虽然RuntimeException的异常可以不使用try...catch进行处理,但是如果一旦发生异常,则肯定会导致程序中断执行,所以,为了保证程序再出错后依然可以执行,在开发代码时最好使用try...catch的异常处理机制进行处理。

java throws的作用_Java中throws..throw的使用与说明相关推荐

  1. java finally的作用_java中finally关键字的特点和作用是什么

    java中finally关键字的特点和作用是什么 发布时间:2020-09-08 11:12:01 来源:亿速云 阅读:114 作者:小新 小编给大家分享一下java中finally关键字的特点和作用 ...

  2. java 守护线程 作用_java中守护线程的一些概念和用法

    网上的资料中,守护线程的功能一般都是"只要当前JVM实例中尚存任何一个非守护线程没有结束,守护线程就全部工作:只有当最后一个非守护线程结束是,守护线程随着JVM一同结束工作,Daemon作用 ...

  3. java 构造函数的作用_Java中构造函数的作用(转)

    https://blog.csdn.net/vipmao/article/details/51530954,我觉得讲的非常好,学习到了 构造函数的最大作用就是创建对象时完成初始化,当我们在new一个对 ...

  4. java里面序列化作用_java中序列化的作用

    一  什么叫序列化 通俗点讲:它是处理对象流的一种机制,即可以很方便的保存内存中java对象的状态,同时也为了方便传输. 二 序列化有什么作用 1.方便传输,速度快,还很安全,被调用方序列化,调用方反 ...

  5. java comparable接口作用_Java 中 Comparable 接口的意义和用法

    一, 为何需要实现Comparable接口 我们知道Collections类中包含很多对实现Collection接口的容器各种操作的静态方法. 当然, 其中最长用的莫过于排序了(Collections ...

  6. java的rsa作用_java 中RSA的方式实现非对称加密的实例

    java 中rsa的方式实现非对称加密的实例 rsa通俗理解: 你只要去想:既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出公钥负责加密,私钥负责解密:同理,既然是签名,那肯 ...

  7. java new string作用_java中直接new String对象?

    首先明确一点,在Java中==比较的是两个对象的地址,equals()比较的是两个对象的值,如果使用equals()来替换==,则两个输出结果都为true. 言归正传,为什么第一个返回为false? ...

  8. java的throw不常用吗_java中的throw与throws的区别

    什么时运行时异常?什么是非运行时异常? 通俗的讲: 运行时异常:就是编译通过,运行时就崩了,比如数组越界. 非运行时异常:就是编译不通过,这时就得必须去处理了.不然就没法运行了. 全面的讲: Thro ...

  9. java中throws用法_java中throws实例用法详解

    在程序出现异常时,会有一个抛出异常的throw出现,这里我们要跟今天所讲的throws区分开.throws的作用是声明抛出,在名称上也跟throw有所不同.下面我们就throws对策概念.语法.实例带 ...

最新文章

  1. Nginx反向绑定域名方法和详细操作应用实例:Google和Gravatar
  2. BZOJ 1666 USACO 2006 Oct. 奶牛的数字游戏
  3. 专业计算机能力考试 技巧,全国专业技术人员计算机应用能力考试应试技巧
  4. POJ2594 Treasure Exploration
  5. ei eo eq什么意思_EI源刊是什么意思
  6. javascript基础知识(16) 变量提升
  7. php oracle数据库连接池,数据库管理Oracle 连接池信息的修改
  8. C#session共享+redis_Redis+Tomcat+Nginx集群实现Session共享,Tomcat Session共享
  9. 频繁项目集java实现_关联分析(2):Apriori产生频繁项集
  10. [转]malloc的内存用free释放后为何系统回收不了
  11. java 省份城市_如何用Java输入一个省份,然后列出这个省份所有城市的名字?
  12. jsp+servlet+mysql 学生选课系统
  13. cu.html 光猫 管理密码,中兴ZXHN F607联通光猫管理员账号密码获取方法
  14. 计算机硬件无法复制文件,笔记本电脑无法复制文件到新移动硬盘的解法
  15. 计算机运行一段时间假死,电脑使用一段时间后变慢或死机(提高电脑运行速度技巧)...
  16. 17年的回望,18年的期望
  17. _()---由此知度娘和google的冷暖
  18. PFO-Ir|PFO-Ir-OXD|D-Ir-Caz|D-Ir-OXD离子型铱配合物共轭聚合物
  19. 关于移动端滚动列表,不发起请求刷新列表的解决思路
  20. SPI协议主机verilog

热门文章

  1. 失业了,没办法供房贷怎么办?
  2. 痞子衡嵌入式:微控制器CPU性能测试基准(EEMBC-CoreMark)
  3. android 展开收起功能,Android开发实现ListView点击展开收起效果示例
  4. iview侧边导航收起
  5. Vue 自定义编辑器 contenteditable
  6. 2023山东学生眼部健康展会/中国国际视力防控发展论坛
  7. 如果你请求返回是502, 这个时候怎么定位这个问题?
  8. 判断素数/质数的快速算法
  9. asp.net实现一个简单的网页计算器(能够实现加减乘除)
  10. 读书 | 数字化转型的道与术(下)