JAVA 异常处理
时间:2019-08-21
本文章向大家介绍JAVA 异常处理,主要包括JAVA 异常处理使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
异常处理
异常
不正常,我们在代码的时候出现的编译或者运行时的错误
异常包含了错误的类型、原因以及位置
异常的体系结构:
Error:出现的不能够处理的严重问题(电脑烂了)
Exception:可以处理的问题(小电影看多了电脑卡)
异常处理
jvm处理异常的方式:
如果出现异常我们没有处理,jvm会帮我们进行处理,并把异常的类型,原因还有位置显示在命令行
还要终止程序,异常后面的代码将不再运行
异常的处理方式:
捕获处理: try ... catch语句 (IDEA 快捷键 CTRL + ALT + T)
try{ 有可能出现问题的代码; }catch(异常对象){ 处理异常; }
try .. catch 执行顺序:
1、try 如果发现异常,异常下面的代码不在执行
2、直接进入catch语句中
3、catch语句结束后,整个try。。。catch语句结束
4、如果没有发现异常, try 语句执行后不在执行 catch 语句
抛出异常:当我们不想处理异常,或者没有能力处理的时候,可以选择抛出异常。
谁调用方法,谁处理异常
使用关键字 throws 在方法的声明时抛出异常
private static void method2() throws IOException { FileWriter fw = new FileWriter("a.txt"); }
多个异常处理
public static void main(String[] args) { try{ String s = null; System.out.println(s.length()); int[] arr = new int[5]; System.out.println(arr[8]); }catch (NullPointerException e) { System.out.println("NullPointerException"); }catch (ArrayIndexOutOfBoundsException e){ System.out.println("ArrayIndexOutOfBoundsException"); } }
多个catch的运行顺序:
多个catch之间可以有子父类
平级之间没有顺序
如果有子父类,父类异常必须放在后面
Throwable常用的方法
String getMessage() 返回此 throwable 的详细消息字符串 原因 String toString() 返回此 throwable 的简短描述 类型和原因 void printStackTrace() 打印异常的堆栈的跟踪信息 类型原因和位置
Finally
finally使用格式: try{ 有可能出现问题的代码; }catch(异常类型 异常变量){ 异常处理; }finally{ //释放资源的代码 //收尾工作,无论try..catch 语句如何执行,fianlly 一定会执行 }
Finally 使用
public static void main(String[] args) { FileWriter fw = null; try { System.out.println(2 / 0); fw = new FileWriter("a.txt"); fw.write("hello"); fw.write("world"); fw.write("java"); } catch (IOException e) { e.printStackTrace(); } finally { //释放资源 try { if(fw != null) { fw.close(); } } catch (IOException e) { e.printStackTrace(); } } }
异常的分类
运行时期异常:RuntimeException的子类就是运行时期异常,在编译时期可以自由选择处理或者不处理
编译时期异常:是Exception的子类,非RuntimeExcpetion的子类,在编译时期必须处理
原文地址:https://www.cnblogs.com/viperqy/p/11388970.html
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Android安装应用 INSTALL_FAILED_DEXOPT 问题及解决办法
- php简单检测404页面的方法示例
- thinkPHP3.2使用RBAC实现权限管理的实现
- Flutter以两种方式实现App主题切换的代码
- PHP中非常有用却鲜有人知的函数集锦
- PHP针对redis常用操作实例详解
- thinkPHP5使用Rabc实现权限管理
- PHP实现cookie跨域session共享的方法分析
- VS Code开发React-Native及Flutter 开启无线局域网安卓真机调试问题
- Laravel5.4简单实现app接口Api Token认证方法
- PHP生成zip压缩包的常用方法示例
- Android Studio用genymotion运行后小图标无法显示问题
- PHP7数组的底层实现示例
- 浅析Flutter AbsorbPointer 与 IgnorePointer的区别
- php用wangeditor3实现图片上传功能