Java(17)异常
一.异常
1.1程序执行过程中出现的影响程序运行正常运行的现象.
1.2异常语法
try{
//代码块
}catch(异常类型 e){
}catch(异常类型 e){
}...{
}finally{
}
注意:try:表示可能出现异常的代码块
catch:抓取异常,并进行处理
可能抓取多个异常,异常范围要从小到大抓取
并且只会执行第一个匹配的异常类型
finally:最后的,不管是否出现异常,finally中的代码一直会执行,除非虚拟机(syatem.exit(1)这个情况外)
使用if结构:
public class Text1 {
/*
* 1.什么是异常? 定义:异常是程序在执行时发生的事件,它会打断指令的正常流程。
*/
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("请输入被除数");
int num = 0;
if(input.hasNextInt()){
num = input.nextInt();
}else{
System.out.println("输入的被除数不是整数,程序退出");
System.exit(1);
}
System.out.println("请输入除数");
int num1 = 0;
if(input.hasNextInt()){
num1 = input.nextInt();
if(0==num1){
System.out.println("输入的除数是0,程序退出");
System.exit(1);
}
}else{
System.out.println("输入的除数不是整数,程序退出");
System.exit(1);
}
System.out.println(String.format("%d/%d =%d",num,num1,num/num1));
System.out.println("感谢使用本程序");
}
}
示例1
运行结果为:

使用try-catch- finally:
//使用 try catch finally处理异常
public class Test2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入被除数");
try {
int num = input.nextInt();
System.out.println("请输入除数");
int num1 = input.nextInt();
System.out.println(String.format("%d/%d =%d", num, num1, num / num1));
} catch (Exception e) {
System.err.println("出现错误,被除数和除数必须是整数," + "除数不能为零");
System.out.println(e.getMessage());
//err是运行期异常和错误反馈的输出流的方向,但它只能在屏幕上打印,即使你重定向也一样
//重定向就是通过各种方法将各种网络请求重新定个方向转到其他位置
//用err打印出的字符串·,再用eclipse的input会显示呈红色;
} finally {
System.out.println("感谢使用本程序!");
}
}
}
/*
* 如果try块中所有语句正常执行完毕,那么finally块就会执行
* 如果try语句块在执行过程中碰到异常,无论这种异常能否被catch块捕捉到,都将执行finally块中的代码
* 注意:即使在try块和catch块中存在return语句,finally块中语句也会执行
* 发生异常时的执行顺序:执行try块或catch中return之前的语句,执行finally块中的语句, 执行try或catch中的return语句退出
* finally 块中语句不被执行的唯一情况:在异常处理代码中执行System.exit(1),将退出java虚拟机
*/
示例2
运行结果为:

1.3 throws 声明异常
a.就是当前方法,不能解决这个异常的时候,必须把这个异常交给上一个调用的去处理
b.语法
访问修饰符 返回值类型 方法名(参数列表)[throws 异常]{}
二.java异常体系
Throwable
|--error:(出现不能通过程序处理的错误)
|--Exception:可以同程序抓取或者抛出的错误
|--检查异常(非运行时异常):编译阶段会出现的异常
SQlExceqtion,
IOException,
ClassNotFoundException
|-- 非检查异常(运行阶段异常RunTimeException):运行简单会出现的异常
NullPointerException,
ArrayIndexOutOfBoundsException,
ClassCastException
注意:cgecked异常,是必需处理的
运行时异常,可以不处理
Java(17)异常的更多相关文章
- Java并发编程:Java ConcurrentModificationException异常原因和解决方法
Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector.ArrayList在迭代的时候如果同时对其进行修改就会抛出java.u ...
- 【转】Java ConcurrentModificationException异常原因和解决方法
原文网址:http://www.cnblogs.com/dolphin0520/p/3933551.html Java ConcurrentModificationException异常原因和解决方法 ...
- 你真的会阅读Java的异常信息吗?
给出如下异常信息: java.lang.RuntimeException: level 2 exception at com.msh.demo.exceptionStack.Test.fun2(Tes ...
- 9、Java ConcurrentModificationException异常原因和解决方法
Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector.ArrayList在迭代的时候如果同时对其进行修改就会抛出java.u ...
- Java:异常小记
Java:异常小记 对 Java 中的 异常 ,做一个微不足道的小小小小记 Error 和 Exception 相同点: Exception 和Error 都是继承了 Throwable 类,在 Ja ...
- Java 17 新功能介绍(LTS)
点赞再看,动力无限.Hello world : ) 微信搜「程序猿阿朗 」. 本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录,有很多知识点和系列文章. Jav ...
- Java基础 - 异常详解
异常的层次结构 Throwable Throwable 是 Java 语言中所有错误与异常的超类. Throwable 包含两个子类:Error(错误)和 Exception(异常),它们通常用于指示 ...
- 我所使用的生产 Java 17 启动参数
JVM 参数升级提示工具:jacoline.dev/inspect JVM 参数词典:chriswhocodes.com Revolut(英国支付巨头)升级 Java 17 实战:https://ww ...
- Java 17 中的模式匹配与和类型
Java 17 中的模式匹配与和类型 从 Spring Security 获取用户谈起 使用 Spring Security做用户校验和权限控制时,常常使用和线程绑定的容器来获取当前登录用户. // ...
随机推荐
- cmapx 保存绘制好的图层
研究了两天,如何保存一绘制好的图层,大致意思都说要使用mapInfo表,然后确定了可定和.TAB表有关.然而网上说的全是垃圾,也不能说全是垃圾,好歹我从中得到了一点点有用的信息,使用mapManage ...
- css 设置 checkbox复选框控件的对勾√样式
效果 最终的样式,想要的效果: 我们要创建方框中的对勾,对于这一点,我们可以使用:after伪类创建一个新的元素,为了实现这个样式,我们可以创建一个5px * 15px的长方形并给他加上边框. ...
- 点击滚动图片JS部分代码以及css设置注意事项
下面js代码可以实现8张图片点击左右按钮后切换的过渡动画效果 var pslul11=document.getElementById('pslul11')var pslspan1=document.g ...
- Idea+maven+tomcat部署第一个tomcat项目
IDEA创建Maven项目及部署发布,IDEA配置Tomcat,创建java源文件夹. 此教程适合刚刚使用IDEA的新手. 工具/原料 IntelliJ IDEA 2016.3.4 apache- ...
- DTCMS插件的制作实例电子资源管理(三)前台模板页编写
总目录 插件目录结构(一) Admin后台页面编写(二) 前台模板页编写(三) URL重写(四) 本实例旨在以一个实际的项目中的例子来介绍如何在dtcms中制作插件,本系列文章非入门教程,部分逻辑实现 ...
- 使用openXML 不用插件导出excel
注释很详细,不做解释了,有疑问可以提问 using System.IO; using System.Text; namespace iLIS.Common { /// <summary> ...
- poj 1001 分析
1) n = 0; return 1: 2) n = 1; bool standardizeNumNoDot(string &s){标准化是一定要得} _将‘.’前后的〇全部去除,正常retu ...
- Ajax理解总结
前端开发拿数据页面实时更新是离不开Ajax这个技术的 AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建 ...
- Vue声明式渲染
Vue.js 的核心是一个允许采用简洁的模板语法来声明式的将数据渲染进 DOM,也就是将模板中的文本数据写进DOM中,使用 {{data}} 的格式写入.此代码都是Vue.js官网上的实例. 1. ...
- c语言项目开发流程一部曲
一.c项目开发总体分如下图所示 二.对每一步的解析 1.需求文档分析,本例以电子词典作为例子 列出每一个需求以及每一个需求的每一个特点,将其归纳 为一张表. 2.设计数据结构 设计数据结构,也就是确定 ...