Java高级语法笔记-普通异常处理
地位:
1. Java彻底地、完全地支持了异常机制。
2. 无处不在、必须掌握。
正常情况:传入一个数组,长度为N,则getMax能够正常运作得到最大值。
异常情况:传入一个数组,长度为0。。。如何处理?传统方法:使用if判断 。
异常处理机制
Java里的异常处理分为两个环节:
1. 底层函数抛出异常对象 throw
… getMax () throws Exception
{
Exception e = new Exception("…描述…");
throw e;
}
2. 上层调用时,监视代码、捕捉异常对象 try … catch …
try{
}catch(Exception e){
}
异常处理机制
try{}: 正常处理流程;
catch{}: 异常处理流程 (错误已发生,该怎么办?);
如果一切正常,则运行完try{}中的代码后,忽略catch{},继续运行后面的代码。
如果getMax()有异常发生时,则立即try{}中退出、并跳转到相应的catch{}中运行。
throw
throw语句用于抛出一个异常对象,该对象必须是Throwable的子类。
通常,我们使用Exception类,或者创建一个Exception的子类。
该类用于描述错误的具体信息。
throw语句的双重作用:
Exception e = new Exception("… 描述…");
throw e;
(1)抛出一个异常对象
(2)退出当前函数
代码如下:
package my;public class HelloWorld
{public int getMax(int[] numbers) throws Exception{if(numbers.length==0) {Exception e=new Exception("长度不能为0");throw e;}int max=numbers[0];for(int i=1;i<numbers.length;i++) {if(numbers[i]>max) {max=numbers[i];}}return max;}public static void main(String[] args){ HelloWorld t=new HelloWorld();int[] date= new int[0];try {int max=t.getMax(date);System.out.println("成功:result:"+max);}catch(Exception e) {System.out.println("出错:"+e.getMessage());}} }
运行截图如下:
Java高级语法笔记-普通异常处理相关推荐
- Java高级语法笔记-模板类
模板类 模板类用与表示通用的数据结构和算法. 例如,定义一个类List,表示通用链表(适用于任意对象的类型) 定义模板类: class List<T>{ } 使用模板类:创建List对象时 ...
- Java高级语法笔记-多个异常处理
如果不用异常机制,而是使用if判断,那也能完成相同的功能. 异常机制的优点: (1) 增加业务流程的可读性. (2) 错误的自描. (3) 减轻程序员的负担,可以将注意力集中到正常业务流程上面. 将一 ...
- Java高级语法笔记-反射机制(Reflection) (1)
反射机制:在C/C++里面是没有的. 反射机制是Java的一个非常重要的机制.一些著名的应用框架都使用了此机制. java.lang.Class它是Java语法的一个基础类,用于描述一个class对象 ...
- Java高级语法笔记-枚举类型
用enum定义枚举类型,即定义一些常量. public enum Weekday{ SUNDAY,MONDAY,TUESDAY,WEDNESDAY, THURSDAY,FRIDAY,SATURDAY ...
- Java高级语法笔记-匿名类(Anonymous Class)
匿名类(Anonymous Class) 匿名内部类,简称匿名类:是内部类的一种化简写法. 基本写法如下: BaseType obj=new BaseType(){ //类的定义 } Java项目中匿 ...
- Java高级语法笔记-语法支持的异常
语法支持的异常 Java对异常支持得很彻底,举例来说: (java.lang.*下面,语法自带的异常类) 数组越界 ArrayIndexOutOfBoundsException 除0异常 Arithm ...
- Java高级语法笔记-文本文件的按行读取
代码如下: HelloWorld.java package my;import java.io.BufferedReader; import java.io.File; import java.io. ...
- Java高级语法笔记-文件操作-链表的存储
代码如下: AfByteBuffer.java package my;import java.io.File; import java.io.FileInputStream; import java. ...
- Java高级语法笔记-文件读写(2)
文件读写(2) int与byte[]之间的互相转化 使用java.nio.ByteBuffer类可以完成int到 byte[]的转换 byte[] buf = new byte[4]; int a = ...
最新文章
- mysql 同机做主从
- golang 数组 最后一个_面试必问:Golang高阶Golang协程实现原理
- vue html5模板,vue-h5-template
- MySQL cast()函数
- Java 200+ 面试题补充 ThreadLocal 模块
- python错误代码提示手册_腾讯大佬整理了 Python 所有内置异常,Python高手必备的排错手册...
- shell脚本编程学习(一)
- CMM,CMMI 软件全面质量管理的思想体系
- SketchUp-2022版本
- dell服务器监控中起什么作用,Dell服务器管理软件 | 戴尔服务器监控 - ManageEngine OpManager...
- 如何用python快速的搭建一个websocket服务器?
- MWORKS应用案例 | 基于Modelica的射流管式电液伺服阀的建模仿真
- 20条常用微信沟通技巧,微信聊天必备
- 一些事,只配当回忆.一些人,只能做过客。既不回头 何必不忘 既然无缘 何必誓言 。这个世界.那么脏.谁有资格.说悲伤。...
- Tracking By Detecting的多目标跟踪
- 如何制作条形码报表(盈帆报表:efreprt.com)
- [重装系统]戴尔DELL新BIOS设置U盘启动
- 008 无穷大及极限的四则运算引理
- 解决 Windows10系统任务栏图标消失
- 小白如何上手几款微信小程序UI组件库