异常捕捉, try-catch语句。

package YH;public class Thundering {public static void main(String[] args) {try {String str="lili";System.out.println(str+"年龄是:");int age=Integer.parseInt("20L");System.out.println(age);} catch (Exception e) {e.printStackTrace();}System.out.println("program over");
}
}

当try代码块中的语句发生异常时,程序就会调转到catch代码块中执行,执行完catch语句后,将继续执行catch代码块后的其他代码块,而不会执行try代码块中发生异常语句后面的代码。JAVA处理异常时结构化的,不会因为一个异常影响整个程序的执行。

Exception是try代码块传递个catch代码块的变量类型,e是变量名。
异常处理常用一下3个函数来获取异常信息
e.getMessage()函数:输出错误性质
e.toString()函数:给出异常的类型与性质
printStackTrace()函数:指出异常的性质、类型、以及出现在程序中的位置。

finally语句块
无论程序有无异常,并且无论之前的try-catch语句是否顺利执行,都会执行finally语句。
一下4种情况不会执行finally语句
1.在finally语句块中发生了异常
2.在前面的代码中使用了System,exit()退出程序
3.程序所在的线程死亡
4.关闭cpu

java自定义异常

在项目中创建MyException类,该类继承Exception类

public class MyException extends Exception {String message;public MyException(String ErrorMessage) {//构造方法this.message=ErrorMessage;}public String getMessage() {//覆盖getMessage方法return this.message;}
}

throws关键字
throws关键字通常被应用在声明方法时,用来指定方法可能抛出的异常。多个异常可以使用逗号隔开。
如果是Error、RuntimeException或它们的子类,可以不使用throws关键字来声明要跑出的异常,编译仍然能顺利通过,但在运行时会被系统抛出。

throw关键字
throw关键字通常用在方法体中,并且抛出一个异常对象。程序在执行到throw关键字时会立刻停止,它后面的语句都不会执行。通过throw抛出异常后,如果想在上一级代码中来捕获并处理异常,则需要在抛出异常的方法中使用throws关键字在方法的声明中指定要抛出的异常;如果要捕捉throw抛出的异常,则必须使用try-catch语句块。
throw关键字通常用来抛出用户自定义的异常。下面通过实例介绍throw的用法

package YiChang;public class Captor {static int quotient(int x,int y)throws MyException{if(y<0) {throw new MyException("除数不能是负数");}if(y==0) {throw new MyException("除数不能为0");}return x/y;}public static void main(String[] args) {try {int result=quotient(3,0);}catch (MyException e) {System.out.println(e.getMessage());}catch (Exception e) {System.out.println("程序发生了其他异常");}}
}

RuntimeException异常时程序运行过程中产生的异常。java类库的每个包中都定义了一异常类,所有这些类都是Throwable类的子类。Throwable类派生了两个子类,分别是EXception 和Error类,Error类及其子类用来描述java运行系统中的内部错误以及资源耗尽的错误,这类错误比较严重。Exception类称为非致命性类,可以通过捕捉处理使程序继续执行。Exception类又根据错误发生的原因分为RuntimeException异常和除RuntimeException之外的异常,

JAVA异常处理、自定义异常、throws关键字与throw关键字、运行时异常相关推荐

  1. Java基础——运行时异常和非运行时异常

    文章目录 Java中异常机制的体系结构 Error(错误) Exception(异常) 运行时异常和非运行时异常的区别 结束 Java中异常机制的体系结构 在Java中,万物皆对象,异常也不例外. E ...

  2. 22.Java之异常处理(异常介绍,异常体系图一览,运行时异常,编译异常,try-catch方式处理异常,throws异常处理,自定义异常,throws 和 throw 的区别)

    22.1.异常介绍 Java语言中,将程序执行中发生的不正常情况称为 "异常" (开发过程中的语法错误和逻辑错误不是异常) 执行过程中所发生的异常事件分为两大类: Error:Ja ...

  3. java 异常继承体系_1、异常概述和继承体系 2、原因及处理方式 3、运行时异常 4、重写异常处理 5、Throwable类常见方法 6、自定义异常...

    01异常的概述 * A: 异常的概述 * a:什么是异常 * Java代码在运行时期发生的问题就是异常. * b:异常类 * 在Java中,把异常信息封装成了一个类. * 当出现了问题时,就会创建异常 ...

  4. 抛出运行时异常的目的_「JAVA」运行时异常、编译时异常、自定义异常,通过案例实践转译和异常链...

    Java基础之异常处理机制 什么是异常 从事Java开发的小伙伴对于"异常"应该不陌生,因为每天都会遇到不少异常,或捕获,或抛出.那究竟什么是异常?异常即非正常的,不同于平常.一般 ...

  5. java运行时异常的特点是什么_Java运行时异常和非运行时异常

    1.Java异常机制 Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类.Java中的异常分为两大类:错误Error和异常Exception,Java ...

  6. java受检异常与运行时异常

    正确运用异常处理机制,有助于提高程序的健壮性. 所谓程序的健壮性,就是指程序在多数情况下能够正常运行,返回预期的正确结果:如果偶尔遇到异常情况,程序也能采取周到的解决措施. 受检查异常表示程序可以处理 ...

  7. Java运行时异常和非运行时异常

    1.Java异常机制 Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类.Java中的异常分为两大类:错误Error和异常Exception,Java ...

  8. Java——异常——运行时异常与编译时异常

    Java--异常--运行时异常与编译时异常 ①编译时异常 1.经常会在程序编译时产生一些异常,而这些异常必须要进行处理,这种异常被称为编译时异常,也称为checked异常. 2.在Java中,Exce ...

  9. java 运行时异常与非运行时异常理解

    参考:https://blog.csdn.net/lan12334321234/article/details/70049446 所谓的异常就是阻止当前程序或方法继续执行的问题 java异常分为两种: ...

  10. java运行时异常中文_JAVA——运行时异常(RuntimeException)

    Exception中有一个特殊的子类异常RuntimeException运行时异常. 如果在函数内抛出该异常,函数上可以不用声明,编译一样通过. 如果在函数上声明了该异常.调用者可以不用进行处理.编译 ...

最新文章

  1. Python基础之标准库datetime 时间与日期的使用
  2. mysql 触发器 实例_mysql的触发器-含案例-含效果 | 时刻需
  3. 设计模式的理解:桥模式 Bridge
  4. 【Thymeleaf】格式化数字
  5. Problem F. Grab The Tree HDU - 6324(树形dp+博弈)
  6. sketchup生成面域插件_独家教程 | 快速抓取“高精准”场地信息,康石石教你生成不同“体量”地形...
  7. for for..in语句的基本结构 常用的内置对象和内置放法
  8. Javabean的理解(通过javabean的部分程序)
  9. 2020 CTF暑假夏令营培训Day2 密码学Crypto 部分笔记
  10. Kotlin(android)协程中文翻译
  11. FreeBSD常用操作
  12. GPS控制网技术设计、技术设计书、作业模式
  13. python-while-函数
  14. java导入ldif文件
  15. 最小公倍数的多种求法(C++代码实现)
  16. 全局钩子(hook鼠标键盘消息)
  17. ASEMI代理ON/安森美FGH40N60SMD原厂渠道车规级IGBT
  18. 关于消息队列ActiveMQ、RocketMQ、RabbitMQ、Kafka原理机制以及优劣势的分析
  19. excel文件下载工具分享
  20. 计算机网络 | 划分子网 | 子网掩码 | 子网划分的方法

热门文章

  1. python有哪两种表现形式小练笔_小练笔的各种形式
  2. RGB转Gray算法实现
  3. YDOOK:ANSYS 进行电磁场仿真的第四步:后处理 查看计算结果
  4. 软件工程网络15个人阅读作业2(201521123028李家俊)
  5. css水平垂直居中方法(全网最全)
  6. 把备考高项当成项目:我的信息系统项目管理师项目实施方案
  7. 用c语言编写简单的餐厅点餐系统(带后台)
  8. VLC媒体播放器系统结构
  9. 【兼容性测试】21个兼容性测试需要注意的测试点
  10. Tensorflow学习笔记(六)均方误差损失函数,MSE