Java:详解Java中的异常
目录
- Java异常
- 常见异常
- throw和throws的区别
- final、finally、finalize的区别
- 总结
Java异常
Java中的异常:又称例外,是一个在程序执行期间发生的事件,它中断正在执行程序的正常指令流
异常的分类:Throwable:类是java语言中所有错误或异常的超类,这意味着只要指示错误或异常,那么肯定是thrawble子类的实例,但是事实上由于错误异常内容过于庞大,所以设计人员将它们分开来,这就是thrawble的两个子类,Error和Exception
- Error类是负责错误,它指程序运行的时候遇到硬件或操作系统的错误,这些错误都是严重并且致命的,是依靠程序自身无法解决的。
- Exception是运行时的错误,它可以被捕获并处理(运行时异常:RuntimeException类及其子类异常,这些异常都是不检查异常,程序中可以选择捕获处理,也可以不处理,这些异常一般由程序逻辑错误引起,程序应该从逻辑角度尽可能避免这类异常的发生。非运行时异常:RuntimeException以外的异常,类型上都属于Exception类及其子类,从语法角度上讲是必须处理的异常,如果不处理,程序就不能通过编译)
常见异常
异常的处理 :通过5个关键字控制 try catch throw throws finally
- 捕获异常 try里面的代码越少越好 catch中必须含有内容,哪怕是简单的提示
try{可能出现异常的代码}catch(异常的类名 变量名){针对异常的处理方式}finally{释放资源}
try{可能出现异常的代码}catch(异常的类名 变量名){针对异常的处理方式}
try{可能出现异常的代码}catch(异常的类名1 变量名){针对异常的处理方式}catch(异常的类名2 变量名){针对异常的处理方式}...
- 编译期异常和运行期异常
运行期异常:代码不够严谨,需要修改代码
编译期异常:必须处理,否则编译不通过
- Throwable
String getMessage() 详细信息字符串
String toString() 返回异常的简短描述
- throws 抛出异常 必须写在方法声明的后面 尽量不要在主方法上抛出异常
throws 异常类名
- throw 在方法内部主动抛出的异常
throw 异常的对象
- finally 保证资源一定得到释放
try{可能出现异常的代码}catch(异常的类名 变量名){针对异常的处理方式}finally{释放资源}
- 自定义异常
继承Exception(编译期异常)
继承RunTimeException(运行期异常)
throw和throws的区别
1.前者写在方法内部 后者写在方法声明的后面
2.前者后面跟的是异常对象 后者跟的是异常类名
3.前者后面只能是一个异常对象 后者可以跟多个一场类名
final、finally、finalize的区别
final
- 修饰类 类不能被继承
- 修饰方法 方法不能被覆盖
- 修饰变量 变量为常量只能赋值一次
finally:异常处理中的组成部分,作用是释放资源,放在finally中的代码一定会执行
finalize:是Object类中的方法,用于垃圾回收
总结
本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注我们的更多内容!
相关推荐
-
全面了解java异常
目录 异常的概念 异常体系 异常的分类 异常产生的过程分析 异常的处理 抛出异常throw 声明异常throws 捕获异常try-catch 捕获异常语法 如何获取异常信息: finally代码块 try catch 语句中有return 的各类情况 异常注意事项 自定义异常 概述 自定义异常演示 异常的概念 异常,在程序中的意思是:程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止. Java的异常机制主要依赖于try.catch.finally.throw和throws五个关
-
Java面向对象之什么是异常
基础概念 (1)异常:Java程序在运行时期发生的不正常情况. Java就按照面向对象的思想对不正常情况进行描述和对象的封装. (2)异常问题分类: (Throwable:定义对于问题共性的功能.) 1.Error:由系统底层发生的,jvn告诉使用者.不做针对性处理,直接修改代码. 2.Exception:发生并告诉使用者,可以进行针对性的处理. (3)异常的处理情况: 1.遇到问题不进行具体的处理,继续抛给调用者.就是在函数上通过throws关键字声明异常.目的是让调用者可以进行处理. 2.针
-
Java异常类型及处理
目录 一.异常定义 二.异常的结构和分类 三.异常的处理和捕获 四.自定义异常 五.异常的应用 1.打印堆栈 2.弹出流程 六.注意点 总结 一.异常定义 异常就是"意外.例外"的意思,也就是非正常情况.异常本质上是程序上的错误,包括程序逻辑错误和系统错误.异常的处理基本上就是用来兜底的,也是程序开发中程序不愿意看到的.异常最基本的信息就是线程的堆栈信息. 二.异常的结构和分类 Throwable主要分为Error和Exception. 错误:Error类以及他的子类的实例,代表了JV
-
Java异常处理深入理解
目录 图片解析: 异常的处理: 处理机制一:try-catch-finally finally的再说明: 处理机制二:throws + 异常类型 开发中应该如何选择两种处理方式? 如何自定义异常类? throw和throws的区别: 总结 图片解析: 1.生成字节码文件的过程可能产生编译时异常(checked),由字节码文件到在内存中加载.运行类此过程可能产生运行时异常(unchecked), 2.JAVA程序在执行过程中所发生的异常事件可分为两类: > Error: Java虚拟机无法解决的的
-
一篇文章带你深入了解Java异常
目录 一.初识异常 1.常见的异常类型 <1>除以0 <2>数组下标越界 <3>访问null对象 2.防御式编程 <1>LBYL <2>EAFP 二.异常的基本用法 1.捕获异常 <1>基本语法: <2>try catch代码示例 <3>try catch finally代码示例 2.异常的处理流程 3.抛出异常(使用throw关键字) 三.java异常体系 1.java内置异常 2.自定义异常类 总结 一.初
-
全面了解java中的异常处理
目录 Java 异常处理 1. 什么是异常 2. Java 异常类架构 2.1 Throwable 类 2.2 Error 类 2.3 Exception 类 3. 如何进行异常处理 4. 抛出异常 4.1 实例 4.2 throw 4.3 throws 5. 捕获异常 6. 自定义异常 7. 异常链 8. 小结 Java 异常处理 Java 的异常处理是 Java 语言的一大重要特性,也是提高代码健壮性的最强大方法之一.当我们编写了错误的代码时,编译器在编译期间可能会抛出异常,有时候即使编译正
-
Java详解Swing中的几种常用按钮的使用
目录 Swing中的常用按钮 AbstractButton的常用方法 JRadionButton(单选按钮) 单选按钮的构造方法 复选框(JCheckBox) 复选框的构造方法 组合框(JComboBox) 组合框的构造方法 下拉列表框的常用方法 小结 Swing中的常用按钮 在Swing中,常见的按钮组件有JButton,JCheckBox,JRadioButton等,它们都是抽象类AbstractButton类的直接或间接子类.在AbstractButton类中提供了按钮组件通用的一些方法.
-
详解c++中的异常
一.什么是异常处理 一句话:异常处理就是处理程序中的错误. 二.为什么需要异常处理,异常处理的基本思想 C++之父Bjarne Stroustrup在<The C++ Programming Language>中讲到:一个库的作者可以检测出发生了运行时错误,但一般不知道怎样去处理它们(因为和用户具体的应用有关):另一方面,库的用户知道怎样处理这些错误,但却无法检查它们何时发生(如果能检测,就可以再用户的代码里处理了,不用留给库去发现). Bjarne Stroustrup说:提供异常的基本目的
-
详解python中的异常捕获
异常 异常是程序发生错误的信号,程序一旦出错就会抛出异常,程序的运行随之终止. # 异常处理的三个特征 - 异常的追踪信息 - 异常的类型 - 异常的内容 捕获异常的目的:为了增强程序的健壮性,即便程序运行过程中出错,也不要终止程序,而是捕获异常并处理,将出错信息记录到日志内. # 语法上错误SyntaxError - 处理方式1:必须在程序运行前就改正 # 逻辑上的错误 - 错误发生的条件是可以预知的 --> if判断 - 错误发生的条件是无法预知的 --> 异常捕获 try 本来程序一旦出
-
详解python中的异常和文件读写
Python异常 1.python异常的完整语法 try: # 提示用户输入一个整数 num = int(input("输入一个整数:")) # 使用 8 除以用户输入的整数并且输出 result = 8 / num print(result) except ValueError: print("请输入正确的整数!") except Exception as result: print("未知错误:%s" % result) else: prin
-
Java:详解Java中的异常
目录 Java异常 常见异常 throw和throws的区别 final.finally.finalize的区别 总结 Java异常 Java中的异常:又称例外,是一个在程序执行期间发生的事件,它中断正在执行程序的正常指令流 异常的分类:Throwable:类是java语言中所有错误或异常的超类,这意味着只要指示错误或异常,那么肯定是thrawble子类的实例,但是事实上由于错误异常内容过于庞大,所以设计人员将它们分开来,这就是thrawble的两个子类,Error和Exception Erro
-
详解Ruby中的异常
异常和执行总是被联系在一起.如果您打开一个不存在的文件,且没有恰当地处理这种情况,那么您的程序则被认为是低质量的. 如果异常发生,则程序停止.异常用于处理各种类型的错误,这些错误可能在程序执行期间发生,所以要采取适当的行动,而不至于让程序完全停止. Ruby 提供了一个完美的处理异常的机制.我们可以在 begin/end 块中附上可能抛出异常的代码,并使用 rescue 子句告诉 Ruby 完美要处理的异常类型. 语法 begin # - rescue OneTypeOfException #
-
详解Java中多线程异常捕获Runnable的实现
详解Java中多线程异常捕获Runnable的实现 1.背景: Java 多线程异常不向主线程抛,自己处理,外部捕获不了异常.所以要实现主线程对子线程异常的捕获. 2.工具: 实现Runnable接口的LayerInitTask类,ThreadException类,线程安全的Vector 3.思路: 向LayerInitTask中传入Vector,记录异常情况,外部遍历,判断,抛出异常. 4.代码: package step5.exception; import java.util.Vector
-
详解Java中NullPointerException异常的原因详解以及解决方法
NullPointerException是当您尝试使用指向内存中空位置的引用(null)时发生的异常,就好像它引用了一个对象一样. 当我们声明引用变量(即对象)时,实际上是在创建指向对象的指针.考虑以下代码,您可以在其中声明基本类型的整型变量x: int x; x = 10; 在此示例中,变量x是一个整型变量,Java将为您初始化为0.当您在第二行中将其分配给10时,值10将被写入x指向的内存中. 但是,当您尝试声明引用类型时会发生不同的事情.请使用以下代码: Integer num; num
-
详解Java删除Map中元素java.util.ConcurrentModificationException”异常解决
今天在使用map并需要根据某些条件删除map元素时,自然而然想到调用Map中的remove(Object key)函数进行删除,代码如下: //遍历map,如果key<5,那么就删除此元素. Map<Integer, Integer> users = new LinkedHashMap<Integer, Integer>(); for (Map.Entry<Integer,Integer> entry : users.entrySet()){ for (int i
-
详解Java中的 枚举与泛型
详解Java中的 枚举与泛型 一:首先从枚举开始说起 枚举类型是JDK5.0的新特征.Sun引进了一个全新的关键字enum来定义一个枚举类.下面就是一个典型枚举类型的定义: public enum Color{ RED,BLUE,BLACK,YELLOW,GREEN } 显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类. 而这些类都是类库中Enum类的子类(Java.lang.Enum).它们继承了这个Enum中的许多有用的方法.我们对代码编译之后发现,编译器将 enu
随机推荐
- IE事件对象(The Internet Explorer Event Object)
- JSP与Servlet的介绍说明
- oracle sys_connect_by_path 函数 结果集连接
- C#返回当前系统所有可用驱动器符号的方法
- 动态加载js文件简单示例
- 浅谈JS封闭函数、闭包、内置对象
- jsp操作MySQL实现查询/插入/删除功能示例
- C++中的循环引用
- javascript获取系统当前时间的方法
- JQUERY获取form表单值的代码
- jQuery使用JSONP实现跨域获取数据的三种方法详解
- Mongodb索引的优化
- 点击显示指定元素隐藏其他同辈元素的方法
- JavaScript中“基本类型”之争小结
- 勾子程序q.dll大战!清杀方法
- ASP.Net中表单POST到其他页面的方法分享
- 学习php设计模式 php实现状态模式
- 当鼠标移出灰色区域时候,菜单项怎么隐藏起来
- Android闹钟启动时间设置无效问题的解决方法
- mysql5.7.21安装配置教程