Java中的异常注意点
在java中 使用throw关键字抛出异常 使用throws关键字声明异常
public static void main(String[] args) throws Exception{try {
//将一个类的全限定名字符串转换成内存中该类对应的字节码文件
//Sql Server 连接方式1
//Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//MySql 连接方式2
//Class.forName("com.mysql.jdbc.Driver");
//Oracle 连接方式3
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
throw new Exception("相关异常");
}
throw关键字是将异常在自己方法中解决 throws关键字是将异常声明出来,让其调用方去解决,如果其调用方是main方法,
其同样使用throws声明异常,那么此异常将会交给java虚拟内部解决。
子类方法不能比父类抛出更多的异常
例如:父类A中的方法Run()没有异常抛出,
那么在类B中重写A类中的Run()方法时就必须要使用try-catch进行环绕解决编译报红,而不能够使用throws将异常声明出去。
捕获异常的过程中需要注意的事情:重点: 无论何时finally块代码都会执行,除非一种情况下:
在try或是catch块中出现了System.exit(0) 这一代码
注意在捕获异常的过程中如果有了return的存在的特殊情况(不推荐此中方法写代码):
public static void main(String[] args) throws Exception {
try {
Say();
} catch (Exception e) {
e.printStackTrace();
}
finally{
System.out.println("finally over");
}
}
static void Say() throws Exception{
try {
int num = 2/0;
} catch (Exception e) {
//System.out.println("报错了");
//System.out.println(e);
throw new Exception("报错了2");//此处只是将异常封存在了内存中并没有输出错误信息。
}finally{
System.out.println("结束了");
//return; //此处的return语句会跳出当前try-catch块 结束本方法且不会抛出异常(直接将此catch中的异常吞掉!)。
}
}
Say() 的finally中return一个值,等同于告诉编译器该方法没有异常,但实际上异常是有的,这样的结果是该方法的调用者却捕获不到异常,相对于异常被无端的被吃掉了.
结论:不要再finally中试图return一个值,这样可能会导致一些意想不到的逻辑错误,finally就是用来释放资源的!
Java中的异常注意点的更多相关文章
- 【Java心得总结二】浅谈Java中的异常
作为一个面向对象编程的程序员对于 下面的一句一定非常熟悉: try { // 代码块 } catch(Exception e) { // 异常处理 } finally { // 清理工作 } 就是面向 ...
- Java中的异常-Throwable-Error-Exception-RuntimeExcetpion-throw-throws-try catch
今天在做一个将String转换为Integer的功能时,发现Integer.parseInte()会抛出异常NumberFormatException. 函数Integer.parseInt(Stri ...
- Java中的异常详解
一.异常定义 阻止当前方法或作用域继续执行的问题,称为异常 二.异常分析 所有不正常类都继承Throwable类,这个类主要有两个子类Error类和Exception类.Error指系统错误 ...
- Java中的异常和处理详解
简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?. ...
- Java中的异常简介
Java中异常的分类 Java中的异常机制是针对正常运行程序的一个必要补充,一般来说没有加入异常机制,程序也能正常运营,但是,由于入参.程序逻辑的严谨度,总会有期望之外的结果生成,因此加入异常机制的补 ...
- java中的异常类
Java中的异常: 1. Throwable是所有异常的根,java.lang.Throwable Throwable包含了错误(Error)和异常(Exception),Exception又包含了运 ...
- Java 中的异常
前段时间集合的整理真的是给我搞得心力交瘁啊,现在可以整理一些稍微简单一点的,搭配学习 ~ 突然想到一个问题,这些东西我之前就整理过,现在再次整理有什么区别嘛?我就自问自答一下,可能我再次整理会看到不一 ...
- Java 中的异常和处理详解
Java 中的异常和处理详解 原文出处: 代码钢琴家 简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误 ...
- Java 中的异常和处理详解(转载)
原文出处: 代码钢琴家 简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函 ...
- Java中的异常和处理详解(转发:https://www.cnblogs.com/lulipro/p/7504267.html)
简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?. ...
随机推荐
- Eclipse不编译解决方案
原文链接:http://blog.csdn.net/huahuagongzi99999/article/details/7719882 转来自己用 这两天Eclipse 不编译了,无论怎么更改保 ...
- node.js 发布订阅模式
//导入内置模块 let EventEmitter = require('events'); let util=require('util'); //Man继承EventEmitter util.in ...
- 小朋友的数字(codevs 3293)
题目描述 Description 有n个小朋友排成一列.每个小朋友手上都有一个数字,这个数字可正可负.规定每个小朋友的特征值等于排在他前面(包括他本人)的小朋友中连续若干个(最少有一个)小朋友手上的数 ...
- [bzoj2038][2009国家集训队]小Z的袜子(hose)_莫队
小Z的袜子 hose 2009-国家集训队 bzoj-2038 题目大意:给定一个n个袜子的序列,每个袜子有一个颜色.m次询问:每次询问一段区间中每种颜色袜子个数的平方和. 注释:$1\le n,m\ ...
- CentOS 7: 配置Network
Command Mode Step 1 » Network interface config files are located in /etc/sysconfig/network-scripts/ ...
- 怎样用EA设计ER图
我们开发系统从文档開始,而EA就是替我们开发文档的好工具.结束了我们从概念设计到逻辑设计中的非常多问题.完好我们的文档. 如今就给大家说说如何在EA中设计概念模型ER图: 首先打开EA-"新 ...
- Jquery Mac OS Desktop项目想启动
想用Jquery做个MAC OS Desktop应用框架,欢迎大家提建议.
- Asp.Net实现JS前台带箭头的流程图方法总结!(个人笔记,信息不全)
Asp.Net实现JS前台带箭头的流程图方法总结!(持续更新中) 一.返回前台json格式 json5 = "[{\"Id\":2259,\"Name\&quo ...
- easyUI中的layout
Layout 通过$.fn.layout.defaults能够重写Layout. layout是一个具有五个区域的容器.仅仅有中间区域面板是必须的,其余的都是边界面板.每个边界面板都能够通过拖动它的边 ...
- IPV6相关RFC文档
1. 通用 IPv6的通用RFC和Internet草案 RFC# 类 标题 1752 标准记录 对IP下一代协议的建议 1924 资料 IPv6地址的压缩表示法 2851 标准记录 Internet网 ...