Java中两种抛出异常的方式

在Java中有两种抛出异常的方式,一种是throw,直接抛出异常,另一种是throws,间接抛出异常。

直接抛出异常是在方法中用关键字throw引发明确的异常。当throw被执行时,其后语句将不再执行,执行流程将直接寻找catch语句并进行匹配。这种错误不是出错产生,而是人为的抛出。throw抛出异常的格式为

throw ThrowableObject;

//例如:

throw new ArithmeticException();

在Java的异常处理模块中,所有抛出的异常都必须要有对应的“异常处理模块”。也就是说,如果在程序中抛出一个异常,那么在方法中就必须要捕获这个异常。

public class Test {

public static void main(String[] args) {

System.out.print("now ");

try{

System.out.print("is ");

throw new NullPointerException();

}catch (NullPointerException e){

System.out.print("the ");

}

System.out.print("time");

}

}

now is the time

如果一个方法可能导致一个异常但不处理它,此时要求在方法声明中包含throws子句,通知潜在调用者,在发生异常时沿着调用层次向上传递,由调用它的方法来处理这些异常,这类异常称为申明异常。实例如下

public class Test {

private static void p() throws ArithmeticException{

int i;

i = 4/0;

}

public static void main(String[] args) {

try {

p();

}catch (ArithmeticException e){

System.out.println("除0错误");

}

}

}

在本实例中,语句I = 4/0;将产生异常,产生异常后方法p()并不进行处理,而是由调用p()的main方法进行处理。

Java中两种抛出异常的方式相关推荐

  1. java中几种创建对象的方式

    java中几种创建对象的方式 在java程序中,对象可以被显式地或者隐式地创建. 下面说说四种显式的创建对象的方式:     ●  用new语句创建对象     ●  运用反射手段,调用java.la ...

  2. java中两种异常类型_Java中的三种异常类型

    java中两种异常类型 Errors are the bane of users and programmers alike. Developers obviously don't want thei ...

  3. java中两种遍历集合的方式_Java中Map集合的两种遍历方式

    Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...

  4. PHP中两种包含文件方式、三种注释风格、四种标记风格

    2019独角兽企业重金招聘Python工程师标准>>> 一.两种包含文件的方式 ①require语法格式:require("文件名"):这个函数通常放在PHP程序 ...

  5. Java基础_17 | Java多线程程序设计(Java中两种创建线程的方法、多线程之间的同步和互斥)

    1. 多线程实现最核心的机制 一个程序在其执行过程中, 可以产生多个线程, 形成多条执行线索.,每条线程,有产生.存在和消亡的过程,并且独立完成各自的功能,互不干扰. 多线程程序运行只占用一个CPU, ...

  6. java中三种基本循环方式详解

    #博学谷IT学习技术支持# Java循环for,while和do-while 简述:如果对于同一种操作需要执行多次的话,就要使用到循环结构.它可以大大简化代码的书写量,让我们的开发更便捷. 例如:打印 ...

  7. java+map申明_Java中两种HashMap申明方式区别?

    Map是HashMap的父类,第一种声明方式是:父类的引用指向子类的对象,是多态的一种表现形式:第二种是:使用本身引用.举个例子: 第一种声明方式是实现了多态,多态后就可以写出一段所有子类都通用的代码 ...

  8. java中两种添加监听器的策略

    /*第一种:将事件的处理委托给其他对象,下面的例子是委托给了MyListener(implements ActionListener)*/ 1 import java.applet.Applet; 2 ...

  9. Java中三种交换值得方式

    方式一: 适用于任意数据类型 int i= 3 ,j=4; int temp = 0; temp = i; i = j; j = temp; 方式二:只适用于整型数据 int i = 3,j = 4; ...

最新文章

  1. 使用 Docker 搭建 PostgreSQL 12 主从环境
  2. 删除linux内核多余架构,删除多余Linux内核方法
  3. SVG 教程 (六)SVG 阴影,SVG 渐变 - 线性,SVG 渐变- 放射性
  4. 远程办公(2)-重新定义“雇佣关系”:交易成果,而不是时间
  5. 输入框聚焦隐藏提示语
  6. Kafka中的配置项参数unclean.leader.election.enable
  7. JMeter二次开发(1)-eclipse环境配置及源码编译
  8. mysql 工具 国产_推荐一款国产化比较好用的数据可视化工具(BI工具)
  9. spring mybatis mysql 事务不起作用
  10. office 打开wps乱_wps和office冲突怎么办
  11. 3D建模除了日常工作,私下还可以赚外快哦,分分钟嗨赚
  12. 使用idea在serviceImpl中配置radis
  13. 微信小程序扫描二维码或者条码
  14. 遇见你是我最美的意外
  15. 微信公众号post方法Java_Java HttpClient 如何伪装微信浏览器进行POST请求
  16. [PWN][基础篇]基础理论
  17. html锚点链接怎么互点,通过优化网页核心关键词快速提升排名
  18. Sailfish OS
  19. python wifi模块
  20. 全排列-python递归解法

热门文章

  1. FXGL JAVA游戏引擎 教程 05.场景 (萌妹在线哭泣)
  2. python画花瓣图案_python 如何使用matplotlib绘制花瓣-百度经验
  3. swift编程语言基础教程 中文版
  4. PyCharm 教程
  5. map遍历的5种方法分享
  6. 程序员最重要的技能:知道什么时候不写代码
  7. 使用amoeba配置mysql读写分离
  8. 使用pushd高效的切换目录
  9. ELKstack日志收集系统
  10. CAD制图初学入门之CAD中怎么画牛?