一、异常分类

1、受检异常

在进行代码编写时就会给出提示的异常需要使用 try-catch-finally 处理或使用 throws 抛出。

2、非受检异常

在代码编写时不会给出提示但是在运行时可能会出现的异常。例如:空指针异常,数组脚标越界异常等

String str1 = null;
String str2 = "好好学习,天天向上!";
System.out.println(str1.equals(str2));  //编写时并没有报错,运行时会出现NullPointerException异常

二、异常处理

1、throws

throws:方法可能会抛出异常。(用在声明方法时,表示该方法可能要抛出异常)

2、throw

throw:对于非受检异常当代码运行到此处时就会出现异常,对于受检异常在编写时就会给出提示。两种异常都可以抛出或用 try-catch-finally 解决,但通常使用throws抛出(throw声明在方法内部)

//非受检异常
public void setAge(int age) throws RuntimeException{if(age<0 || age>150) {RuntimeException e; throw e = new RuntimeException("年龄不合法");}else {this.age = age;}}

3、try-catch-finally

try-catch-finally:用于处理异常,当异常不被抛出时就需要使用 try-catch-finally 处理,其中 finally 部分是必须执行部分即使在 try 或 catch 中执行了return 语句也会在返回前运行finally中的语句。finally 可以有也可以没有。
将可能出现异常的部分放在try块中,对异常的处理放在catch块中。
出现异常后不再执行后面的语句,如果异常出现在try中便不再执行try块中后面的语句。
public static void main(String[] args) {String str1 = "好好学习,天天向上!";String str2 = null;boolean bool;try {bool = str2.equals(str1); //在这会出现空指针异常System.out.println("少睡觉,多看书!");}catch(NullPointerException e) {System.out.println("str2不能为空!");return;}finally {str2 = "好好学习,天天向上!";System.out.println(str1.equals(str2));}
}
/*执行结果为:
str2不能为空!
true
*/
但是有一种特殊的情况:如果出现System.exit(0); 语句便终止程序,不会继续执行后面的代码
public static void main(String[] args) {String str1 = "好好学习,天天向上!";String str2 = null;boolean bool;try {bool = str2.equals(str1);System.out.println("少睡觉,多看书!");}catch(NullPointerException e) {System.out.println("str2不能为空!");System.exit(0);}finally {str2 = "好好学习,天天向上!";System.out.println(str1.equals(str2));}
}
/*执行结果为:
str2不能为空!
*/

三、自定义异常

编写一个类,继承Exception,并重写一个参数的构造方法即可完成自定义受检异常类型。
编写一个类, 继承RuntimeExcepion,并重写一个参数的构造方法即可完成自定义运行时异常类型。

public class Age extends Exception{public Age(String str) {super(str);}
}

java throw throws try-catch-finally异常处理相关推荐

  1. 浅谈Java throw, throws, try catch异常处理

    2019独角兽企业重金招聘Python工程师标准>>> 1.throws关键字通常被应用在声明方法时,用来指定可能抛出的异常.多个异常可以使用逗号隔开.当在主函数中调用该方法时,如果 ...

  2. [Java]关于throw,throws,try{}catch(){}

    一.异常的产生 1. 在java代码中,如果发生异常,JVM就会中断程序代码的运行,然后创建异常对象并抛出.例如: int a=2, b=0; int i=a/b;  //除数不能为0,发生异常 Sy ...

  3. java异常处理之throw, throws,try和catch

    转自 http://blog.csdn.net/zhouyong80/article/details/1907799  程序运行过程中可能会出现异常情况,比如被0除.对负数计算平方根等,还有可能会出现 ...

  4. java throw 和catch_java异常处理之throw, throws,try和catch

    转自 http://blog.csdn.net/zhouyong80/article/details/1907799 程序运行过程中可能会出现异常情况,比如被0除.对负数计算平方根等,还有可能会出现致 ...

  5. Java中throws和throw的区别讲解

    当然,你需要明白异常在Java中式以一个对象来看待. 并且所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,但是一般情况下Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示 ...

  6. java 8 lambda表达式中的异常处理

    文章目录 简介 处理Unchecked Exception 处理checked Exception 总结 java 8 lambda表达式中的异常处理 简介 java 8中引入了lambda表达式,l ...

  7. java中try 与catch的使用

     (2011-10-08 17:08:43) 转载▼ 标签: 杂谈 分类: Java try{ //代码区 }catch(Exception e){ //异常处理 } 代码区如果有错误,就会返回所写异 ...

  8. [转载]java中try 与catch的使用

    留着以后看 原文地址:java中try 与catch的使用作者:碌碌如玉 try{ //代码区 }catch(Exception e){ //异常处理 } 代码区如果有错误,就会返回所写异常的处理. ...

  9. 【JAVA】<深入理解>异常处理

    目录 一.异常概述与异常处理结构体系: 异常概述: 异常处理概述: 异常体系结构: 父接口:java.lang.Throwable 接口 编译时异常(checked): 运行时异常(unchecked ...

最新文章

  1. Xcode8 及iOS10适配问题汇总
  2. linux系统配置之开机启动过程(centos)
  3. linux 加密可逆,RSA加密是可逆的吗
  4. LeetCode Ugly Number II(丑数的计算)
  5. css技巧之如何实现ul li边框重合
  6. centos ping不通局域网_新手小白初次安装虚拟机,网络不通怎么办,踩过的坑都告诉你...
  7. Mozilla 将 Firefox 的命运与 Rust 语言捆绑在一起
  8. 深度学习(十四)——Softmax详解, 目标检测, RCNN
  9. android集合优化,android-性能优化之集合类优化
  10. 巴菲特:承认错误“抄底”航空股,不看好航空公司
  11. 刚刚创业的你 这几点让你的公司不断前进
  12. Qcon大会上电子工业出版社博文视点提供全程技术图书支持
  13. 操作系统对的IIS版本
  14. 自由曲面透镜设计matlab,实现LED台灯均匀照明的自由曲面透镜仿真设计
  15. 电脑技巧 ADSL如何远程盗号
  16. 人事电子档案管理系统服务器,浪潮为北京市档案馆 打造智能档案管理系统
  17. 让聊天机器人来填平技术鸿沟吧!
  18. 4g能用吗64java,4g内存能不能装64位系统吗_电脑内存是4g可以安装64位系统吗
  19. LCR TC1 测试仪
  20. linux 测速命令 speed-test 以及 iperf3

热门文章

  1. js自动滚动条在底部
  2. 【SQL Server中SMO的简单使用】 (装载)
  3. Nodejs之旅开始
  4. MobSF,一款开源移动安全测试框架
  5. OpenCV3学习(3)——视频文件的读取与写入
  6. c语言链表递增,[C语言][PTA][2019Fall] 6-28 递增的整数序列链表的插入 (15 point(s))
  7. mariadb mysql 配置文件_Mariadb配置文件优化参数(仅供参考)
  8. MySQL学习记录—常用语句集
  9. c语言中变量的大小,C语言变量定义
  10. layui的登录ajax,layui如何实现登录功能