地位:
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高级语法笔记-普通异常处理相关推荐

  1. Java高级语法笔记-模板类

    模板类 模板类用与表示通用的数据结构和算法. 例如,定义一个类List,表示通用链表(适用于任意对象的类型) 定义模板类: class List<T>{ } 使用模板类:创建List对象时 ...

  2. Java高级语法笔记-多个异常处理

    如果不用异常机制,而是使用if判断,那也能完成相同的功能. 异常机制的优点: (1) 增加业务流程的可读性. (2) 错误的自描. (3) 减轻程序员的负担,可以将注意力集中到正常业务流程上面. 将一 ...

  3. Java高级语法笔记-反射机制(Reflection) (1)

    反射机制:在C/C++里面是没有的. 反射机制是Java的一个非常重要的机制.一些著名的应用框架都使用了此机制. java.lang.Class它是Java语法的一个基础类,用于描述一个class对象 ...

  4. Java高级语法笔记-枚举类型

    用enum定义枚举类型,即定义一些常量. public enum Weekday{ SUNDAY,MONDAY,TUESDAY,WEDNESDAY, THURSDAY,FRIDAY,SATURDAY ...

  5. Java高级语法笔记-匿名类(Anonymous Class)

    匿名类(Anonymous Class) 匿名内部类,简称匿名类:是内部类的一种化简写法. 基本写法如下: BaseType obj=new BaseType(){ //类的定义 } Java项目中匿 ...

  6. Java高级语法笔记-语法支持的异常

    语法支持的异常 Java对异常支持得很彻底,举例来说: (java.lang.*下面,语法自带的异常类) 数组越界 ArrayIndexOutOfBoundsException 除0异常 Arithm ...

  7. Java高级语法笔记-文本文件的按行读取

    代码如下: HelloWorld.java package my;import java.io.BufferedReader; import java.io.File; import java.io. ...

  8. Java高级语法笔记-文件操作-链表的存储

    代码如下: AfByteBuffer.java package my;import java.io.File; import java.io.FileInputStream; import java. ...

  9. Java高级语法笔记-文件读写(2)

    文件读写(2) int与byte[]之间的互相转化 使用java.nio.ByteBuffer类可以完成int到 byte[]的转换 byte[] buf = new byte[4]; int a = ...

最新文章

  1. mysql 同机做主从
  2. golang 数组 最后一个_面试必问:Golang高阶Golang协程实现原理
  3. vue html5模板,vue-h5-template
  4. MySQL cast()函数
  5. Java 200+ 面试题补充 ThreadLocal 模块
  6. python错误代码提示手册_腾讯大佬整理了 Python 所有内置异常,Python高手必备的排错手册...
  7. shell脚本编程学习(一)
  8. CMM,CMMI 软件全面质量管理的思想体系
  9. SketchUp-2022版本
  10. dell服务器监控中起什么作用,Dell服务器管理软件 | 戴尔服务器监控 - ManageEngine OpManager...
  11. 如何用python快速的搭建一个websocket服务器?
  12. MWORKS应用案例 | 基于Modelica的射流管式电液伺服阀的建模仿真
  13. 20条常用微信沟通技巧,微信聊天必备
  14. 一些事,只配当回忆.一些人,只能做过客。既不回头 何必不忘 既然无缘 何必誓言 。这个世界.那么脏.谁有资格.说悲伤。...
  15. Tracking By Detecting的多目标跟踪
  16. 如何制作条形码报表(盈帆报表:efreprt.com)
  17. [重装系统]戴尔DELL新BIOS设置U盘启动
  18. 008 无穷大及极限的四则运算引理
  19. 解决 Windows10系统任务栏图标消失
  20. 小白如何上手几款微信小程序UI组件库

热门文章

  1. 不是计算机专业及其相关专业,对软件编程一窍不通,能学好编程吗?
  2. 【程序员面试干货】资深面试官告诉你:测试工程师面试要注意什么?
  3. 5招训练你的数据敏感度,数据高手都在用
  4. freeeim源码一个个投篮的命中
  5. C#字符串(String)操作
  6. 飞鸽传书程序IT基础架构和应用的管理
  7. 浅谈:飞鸽传书 的TCP/IP原理
  8. 阿里巴巴的程序员们来相亲啦!择偶标准大公开,瞬间吸引一众家长
  9. expdp oracle 并行_DMP文件导入ORACLE指南
  10. iMeta | 华中科大宁康组综述宏基因组数据用于蛋白质三维结构预测的方法论