java 向上抛异常_java throws 向上抛出的概念问题

展开全部

------------------附注------------------------

向上抛出的意思 针对  子类 父类,

这里面涉及到几个方面,最重32313133353236313431303231363533e4b893e5b19e31333332613637要的一点,

(先抛子类的异常,再抛父类的异常.)(FALSE)

如果在该方法写明catch子句,catch的顺序是子类异常,后是父类异常.

若在子类异常中捕获了,则不用向父类(也就是您讲的上一级)抛出,所有的异常都有基类java.lang.Throwable,也可自定义,多用于业务层面.

什么时候使用throws?

在基础方法可能产生的异常使用throws,在应用方法的地方捕获异常处理。

如果在每层基础方法处捕获异常,那么在应用方法处很可能会忽略掉下层基础方法处理出的null。所以更好的方式是让基础方法throws异常以提醒调用它的应用方法捕获并处理它。

何时使用throw?

在需要最终处理一些事件的地方,例如:

public ResultSet query(String sql) throws NullPointerException,SQLException {

try {

conn = pool.getConnection();

pstmt = conn.prepareStatement(sql);

rs = pstmt.executeQuery();

} catch (NullPointerException e) {

thorw new NullPointerException(); // 在此抛出的null异常可以不用在方法后面throws;且此异常出现一定会被捕获到;

} catch (SQLException e) {

throw new SQLException();

} finally {

pool.releaseConnection(conn);

}

return rs;

}

这里为了finally释放连接,捕获了异常,但是并不想在基础类的地方处理它,所以重新抛出,让调用它的应用方法可以注意到并判断处理。

特殊的Exception:NullPointerException。

NullPointerException在被抛出后可以不用throws也可被调用的方法捕获到。见上例注释。

***********************jmuok2013-4-7 00:26***********************************public class TestException{

public static void main(String[] args){

throw new FatherException();

// throw new ChildException();

// 比较两者区别.

}

}

class FatherException extends RuntimeException{

public FatherException(){

System.out.println("My name is father exception....");

}

}

class ChildException extends FatherException {

public ChildException() {

System.out.println("My name is child exception....");

}

}

--throw new FatherException();--------result---------

Exception in thread "main" My name is father exception....

com.monical.FatherException

at com.monical.TestException.main(TestException.java:5)

--throw new ChildException();---------result---------

My name is father exception....

My name is child exception....

Exception in thread "main" com.monical.ChildException

at com.monical.TestException.main(TestException.java:6)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244720.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows linux cpu 抢占式 时间片_嵌入式Linux中进程调度怎样来解析

合作微信:xydf321456Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。1.前言处理机(CPU)是整个计算机系…

java 堆内存分析_JVM内存堆布局图解分析

JAVA能够实现跨平台的一个根本原因,是定义了class文件的格式标准,凡是实现该标准的JVM都能够加载并解释该class文件,据此也可以知道,为啥Java语言的执行速度比C/C语言执行的速度要慢了,当然原因肯定不止这一个,如在JVM中没有数据寄…

python生成奇数列表_python3:列出一个不需要迭代的奇数列表

您可以使用range为您生成列表:first_hundred_odd list(range(1, 200, 2)) # get an iterator in 1..200 range with step of 2在Python2.x上不需要将其转换为列表更新:是的,将range()迭代器转换为list实际上是在执行迭代来填充列表&#xff…

wpf表格datagrid拖动列_这才是老板要的Excel表格,你做的太丑了!

在网上看到一个高手做的Excel表格,非常的漂亮,今天我们一起仿做一下。原始的表格,再熟悉不过的样式:完成后的效果,是不是有让你颠覆三观的感觉?同样的数据,不同的展示方式,后者不但好…

java同步转化成异步_Java 如何把异步调用模拟成同步调用

在某些时候,须要把异步调用模拟成同步调用的形态。例如,基于基于异步通讯的客户端须要同步调用。 :-)异步要实现这个转换,能够有多种实现方法:this1。很经常使用的方法,应用循环机制:spaboolean flag fals…

python系统自学_如何系统地自学python

可以按照黑马程序员整理的这套教程来学习:一、Python入门这一阶段,你需要学习的知识点:如果学习能力还不错的话,这一阶段,只需要一个多月的时间Python视频教程:1、重磅级教程推荐,讲的非常好Python入门教程完整版(懂中文就能学会):http://pan.baidu.com/s/1miwZ1WW2、Python基础…

java实现加减乘除运算符随机生成十道题并判断对错_简单小程序——产生三十道小学四则运算题目...

题目要求程序可以生成三十道小学四则运算题目。因为要随机生成题目,则需要产生随机数,因此我上网搜索了生成随机数的方法,选择了使用Random类得到规定范围内的随机数。因为一个运算需要三个元素,两个参与运算的数字,一…

proteus跑马灯仿真_不花费一分钱,实现跑马灯编程实验

建立仿真工程初学者学习单片机编程,并不需要去网上买个开发板才能开始编程做实验,若是想先了解,可以先用proteus仿真软件来做实验,Protues软件具有其它EDA工具软件的功能。这些功能是:1.原理布图2&#xff…

java异常 说服力_异常常见面试题目

1) Java中什么是Exception?这个问题经常在第一次问有关异常的时候或者是面试菜鸟的时候问。我从来没见过面高级或者资深工程师的时候有人问这玩意,但是对于菜鸟,是很愿意问这个的。简单来说,异常是Java传达给你的系统和程序错误的方式。在ja…

linux下python脚本print中文显示不正确_在终端上运行python脚本,没有打印或显示-为什么?...

通过艰苦的学习Python,第25课。我尝试执行脚本,结果如下:myComp:lphw becca$ python l25myComp:lphw becca$终端中不打印或显示任何内容。这是密码。def breaks_words(stuff):"""This function will break up words for us.&q…

美团科技 Java工程师_美团网java工程师面试都会问哪些问题?

美团网java工程师面试主要考察面试者的专业知识,涉及TCP/IP 线程、synHashMap底层、进程关系、servlet生命周期、pringMVC单例异常、Object方法、ConcurrentHashMap、java并发包、线程池、zookeeper、SpringMVC、JMM、GC等,问的问题很细致,专…

线性共轭梯度法python_python实现的共轭梯度法

共轭梯度法是介于最速下降法与牛顿法之间的一个方法,它仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hesse矩阵并求逆的缺点,共轭梯度法不仅是解决大型线性方程组最有用的方法之一&#xff…

java原子操作cas_java并发编程系列二:原子操作/CAS

什么是原子操作不可被中断的一个或者一系列操作实现原子操作的方式Java可以通过锁和循环CAS的方式实现原子操作CAS( Compare And Swap ) 为什么要有CAS?Compare And Swap就是比较并且交换的一个原子操作,由Cpu在指令级别上进行保证。为什么要有CAS&…

power bi 日期计算_PowerBI 动态计算周内日权重指数

在很多行业,尤其是零售业,其销售规律在一周内呈现一定的特点。例如:平时有一种购买特点;周末有一种购买特点。故而一周内的星期一到星期日呈现一定的权重分布。周内日权重分布1 到 12 表示月序号;1 到 7 表示周内日。这…

updatechecker.java_解决ehcache的UpdateChecker问题

问题描述项目中用了ssh框架,每次启动tomcat的时候都特别慢,会在这样一句话下面停留很久[2016-01-08 23:55:51,517 INFO UpdateChecker.java:doCheck:98] ---- New update(s) found: 2.6.5 [http://www.terracotta.org/confluence/display/release/Releas…

vb 6.0 获取重定向的url_接口测试:A07_HttpRunner重定向_04_解决方案

A07_HttpRunner重定向_04_解决方案既然 HttpRunner 是对 requests 模块的封装,那我们就试图从 requests 中寻找答案,在其官网中发现了对重定向的描述和处理:地址:http://cn.python-requests.org/zh_CN/latest/user/quickstart.htm…

java wordcount程序_[java]wordcount程序

词数统计系统。作业解析:这次作业的内容是从本地读取一个程序代码,计算出这个程序中的行数,单词数,也可进行拓展。实现语言:java编程思路:程序是由各种单词和符号组成的,单词包括关键字&#xf…

python怎么创建虚拟环境_anaconda怎么创建python虚拟环境

anaconda创建python虚拟环境的方法是:执行命令【conda create -n your_env_name pythonxx】即可。如果我们要激活虚拟环境,执行命令【activate your_env_name】即可。具体方法如下:创建python虚拟环境conda create -n your_env_name pythonxx…

java servlet深入理解_java 步步惊心 (web ) 深入理解servlet

用户在浏览器中输入一个网址回车,浏览器会向服务器发送一个HTTP请求。服务器端程序接受这个请求,并对请求进行处理,然后发送回应,浏览收到回应,再把回应的内容显示出业。这种请求-响应模式就是典型web应用程序访问过程…

robot ride edit 页面不显示_【框架】robot-framework预研

隔壁组在使用robot framework进行自动化测试,这玩意之前我没接触过,决定来预研一下这个auto test框架。背景一个好的框架,背后少不了一个牛逼的团队或组织(金主爸爸),也是判断是否值得投入时间学习的一个参考因素(虽然强如塞班系统…