首页 > 编程语言 >韩顺平java基础-12-异常

韩顺平java基础-12-异常

时间:2024-01-10 11:24:04浏览次数:30  
标签:12 java try 编译 finally catch 执行 异常 顺平

韩顺平java基础-12-异常

异常

基本概念

语法错误、逻辑错误不属于异常,区分语法错误、逻辑错误与异常的区别

分类

  1. Error:指编译器无法处理解决的错误,可能是语法错误、逻辑错误。
  2. Exception:编译时异常、运行时异常

**异常体系图 **

异常分为运行时异常与编译时异常

  1. 运行时异常,编译器检查不出来,一般是编程时的逻辑错误。可以不做处理
  2. 编译时异常,是编译器要求必须处理的异常。

常见运行时异常

  1. NullPointerException 空指针异常

在需要使用对象时,对象为空

  1. ArithmeticException 数学运算异常

数字运算时发生异常,如除法中,除数为0

  1. ArrayIndexOutOfBoundsException 数组下标越界异常

数组越界,如遍历数组时,超出数组范围

  1. ClassCastException 类型转换异常

类型转换时发生异常,如向下转型,编译类型与运行类型不匹配

  1. NumberFormatException 数字格式不正确异常

如字符串转换成整数类型发生异常


编译异常

在编译时就必须处理的异常


异常处理-机制

  1. try-catch-finally
 try{

代码//可能出现异常}

catch(Exception e){

//捕获异常后处理(若没有异常发生,则不会执行)}

finally{

//不管是否发生异常,始终要执行finally

//通常放入释放资源的代码}
  1. throws

抛出异常至上一级,->jvm虚拟机:输出异常信息、退出程序

若没有任何处理,默认使用throws处理异常


异常处理细节

  1. 如果可能有多个异常,可以使用多catch语法,分别捕获具体的异常,要求子类异常在前,父类异常在后。
  2. 可以使用try-finally 异常仍然会使程序崩溃,但依然会执行finally
  3. 没有出现异常,则执行try中所有语句,catch将不再执行,如果有finally,最后执行finally
  4. 出现异常,try剩余语句不再执行,执行catch语句,若有finally,还要执行finally语句

标签:12,java,try,编译,finally,catch,执行,异常,顺平
From: https://www.cnblogs.com/forest-pan/p/17956101

相关文章

  • 韩顺平java基础-09-房屋出租系统
    韩顺平java基础-09-房屋出租系统房屋出租设计HouseView.java<=>类[界面]显示界面接收用户输入调用HouseService完成对房屋信息的各种操作HouseService.java<=>类[业务层]响应HouseView的调用完成对房屋信息的各种操作[crud]House.java<=>类[数据]一个Hous......
  • 韩顺平java基础-11-枚举类与注解
    韩顺平java基础-11-枚举类与注解2024.1.5-2024.1.8枚举类定义概念定义常量对象,不能被修改语法1.自定义类实现枚举构造器私有化去掉set方法创建静态对象(new)优化:加入final修饰符,避免类加载2.enum关键字实现枚举关键字enum替换class创建对象:对象名+实参列表注......
  • 韩顺平java基础-10-面向对象编程
    韩顺平java基础-10-面向对象编程类变量和类方法类变量static静态变量被同一个类所有对象共享类变量在类加载的时候生成定义语法访问修饰符static数据类型变量名如何访问类变量类名.类变量名//类变量随着类加载而创建,所以即使没有创建对象实例也可以访问。使用细......
  • LoRa SIP模块动能世纪XD6500S集成RF前端+LoRa无线电收发器SX1262
    相信大部分了解LoRa的朋友们都知道,LoRa是低功耗广域网通信技术中的一种,是Se***ch公司专有的一种基于扩频技术的超远距离无线传输技术。LoRaWAN是为LoRa远距离通信网络设计的一套通讯协议和系统架构。它是一种媒体访问控制(MAC)层协议。而我们今天的主角LoRaSIP模块动能世纪XD6500S......
  • 平台工程动态 Monthly News 2023-12
    TOC项目与社区动态CNOE:云原生卓越运营领英工程团队开源了其开发者生产力与幸福感框架Backstage添加中文README会议与活动PlatformCon2024议题正在征集中KubeConEU2023回顾KubeConNA回顾TOP100全球软件案例研究峰会优质好文推荐微软推出平台工程学习课程......
  • java工作流引擎-j-roadflow-plus使用快速入门
    新建一个流程并发布运行需要以下步骤:1、新建表单。    在表单管理中新建表单,并设计表单,在表单中拖入控件。        点新建按钮会进入表单设计界面,并自动弹出表单属性设置。        输入表单名称,选择数据连接,数据表选择已有的测试表rf_form_test,主键选id......
  • 唠一唠Java线程池
    第1章:引言大家好,我是小黑,咱们今天来聊聊Java线程池,如果没有线程池,每个线程都需要手动创建和销毁线程,那将是多么低效和耗资源啊!线程池的核心作用就是复用已创建的线程,减少系统开销,提高响应速度。咱们在开发高并发应用时,经常会遇到需要同时执行多个任务的场景,这时候线程池就闪亮......
  • test-01-java 单元测试框架 junit 入门介绍
    拓展阅读junit5系列基于junit5实现junitperf源码分析Autogeneratemockdataforjavatest.(便于Java测试自动生成对象信息)Junitperformancerelyonjunit5andjdk8+.(java性能测试框架。性能测试。压测。测试报告生成。)JUnitJUnit是一个用于编写可重复测试......
  • test-02-java 单元测试框架 junit5 入门介绍
    拓展阅读junit5系列基于junit5实现junitperf源码分析Autogeneratemockdataforjavatest.(便于Java测试自动生成对象信息)Junitperformancerelyonjunit5andjdk8+.(java性能测试框架。性能测试。压测。测试报告生成。)junit5的入门例子maven引入<depend......
  • java基础问题
    数组一维数组:  1.使用new指定一个数组大小int[]number=newint[8];number[0]=1;number[1]=2;number[2]=3;number[3]=5;number[4]=8;其中,int表示数据类型,并且给每个元素进行赋值。2.使用new指定数组元素的值int[]number=newint[]{1,2,3,5......