在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中的异常注意点的更多相关文章

  1. 【Java心得总结二】浅谈Java中的异常

    作为一个面向对象编程的程序员对于 下面的一句一定非常熟悉: try { // 代码块 } catch(Exception e) { // 异常处理 } finally { // 清理工作 } 就是面向 ...

  2. Java中的异常-Throwable-Error-Exception-RuntimeExcetpion-throw-throws-try catch

    今天在做一个将String转换为Integer的功能时,发现Integer.parseInte()会抛出异常NumberFormatException. 函数Integer.parseInt(Stri ...

  3. Java中的异常详解

    一.异常定义 阻止当前方法或作用域继续执行的问题,称为异常 二.异常分析      所有不正常类都继承Throwable类,这个类主要有两个子类Error类和Exception类.Error指系统错误 ...

  4. Java中的异常和处理详解

    简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?. ...

  5. Java中的异常简介

    Java中异常的分类 Java中的异常机制是针对正常运行程序的一个必要补充,一般来说没有加入异常机制,程序也能正常运营,但是,由于入参.程序逻辑的严谨度,总会有期望之外的结果生成,因此加入异常机制的补 ...

  6. java中的异常类

    Java中的异常: 1. Throwable是所有异常的根,java.lang.Throwable Throwable包含了错误(Error)和异常(Exception),Exception又包含了运 ...

  7. Java 中的异常

    前段时间集合的整理真的是给我搞得心力交瘁啊,现在可以整理一些稍微简单一点的,搭配学习 ~ 突然想到一个问题,这些东西我之前就整理过,现在再次整理有什么区别嘛?我就自问自答一下,可能我再次整理会看到不一 ...

  8. Java 中的异常和处理详解

    Java 中的异常和处理详解 原文出处: 代码钢琴家 简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误 ...

  9. Java 中的异常和处理详解(转载)

    原文出处: 代码钢琴家 简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函 ...

  10. Java中的异常和处理详解(转发:https://www.cnblogs.com/lulipro/p/7504267.html)

    简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?. ...

随机推荐

  1. unigui+fastreport 打印【4】

    1.建立一个uniForm,用于建立FastReport打印界面.在Form上增加uniFrame.和传统的的报表打印设计一样一样的. 2.在beofeShow事情中: procedure TUniF ...

  2. Navigator的学习

      Navigator 对象包含有关浏览器的信息.注释:没有应用于 navigator 对象的公开标准,不过所有浏览器都支持该对象.   我感觉需要看什么属性和方法,直接输出这个navigator,然 ...

  3. noip模拟赛 业务办理

    [问题描述]在银行柜台前,有 n 个顾客排队办理业务. 队伍中从前往后,第 i 位顾客办理业务需要ti 分钟时间. 一位顾客的等待时间定义为:队伍中在他之前的所有顾客和他自己的办理业务时间的总和.第 ...

  4. Ubuntu 16.04安装UltraCopier做为FastCopy的替代方案

    对于Linux的文件复制软件有很多,参考:http://alternativeto.net/software/fastcopy/?platform=linux 对于UltraCopier来说,是比较不 ...

  5. 字段not null属性要放在最后面写,最少在类型后面写

    报错:create table test2211(id not null bigint ,age timestamp); 正确写法:create table test2211(id bigint no ...

  6. open redis port for remote connections

    edit /etc/redis.conf Add below line after bind 127.0.0.1, then try redis-cli -h xxx.xxx.xxx.xxx ping ...

  7. mac下,redis的安装与配置

    一.安装redis 1.到官网下载redis最新版本号,我下载的是3.0.3 http://redis.io/ 2.拷贝redis-3.0.3到/usr/local文件夹 3.解压缩sudo tar ...

  8. 【Android】资源系列(一) -- 国际化(多语言)

    1.Android 中要实现国际化比較简单.     字符串国际化:仅仅要在 res 目录下新建相应语言的 values 目录就好了.     如.英语环境下的.目录命名为:values-en     ...

  9. oc const 关键字 对指针的理解

    /* int const *p; *p是常量, p是变量 const int *p; *p是常量, p是变量 int * const p; *p是变量, p是常量 const int * const ...

  10. hdu 4549 M斐波那契数列(矩阵高速幂,高速幂降幂)

    http://acm.hdu.edu.cn/showproblem.php?pid=4549 f[0] = a^1*b^0%p,f[1] = a^0*b^1%p,f[2] = a^1*b^1%p... ...