博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java之异常抛出
阅读量:6526 次
发布时间:2019-06-24

本文共 2640 字,大约阅读时间需要 8 分钟。

异常的使用概述

异常及时Java程序在运行的过程中出行的错误

异常分类

JVM是如何处理异常的

main方法遇到这种问题有两种处理异常的方式 a:自己将问题处理,然后运行 b:没有针对处理方式,就会交给main方法的JVM去处理 c:JVM里面有一个默认的异常处理机制,将异常的名称,信息打印在控制台,并停止程序运行。

try抛出异常的三种方式

try...catch   try...finally   try...catch...finally复制代码
public class Demo2_Exception {    public static void main(String[] args) {//        demo();        int a=10;        int b=0;        int[] arr = {
11, 22, 33, 44, 55}; try { int c=a/b; arr=null; System.out.println(arr[10]); System.out.println(c); //JDK7出现的抛出异常方法,只要出现其中一个就可以抛出异常,为发生错误 }catch(ArithmeticException |ArrayIndexOutOfBoundsException e){ System.out.println("发生错误"); } } public static void demo() { int a=10; int b=0; int[] arr = {
11, 22, 33, 44, 55}; try { int c=a/b; arr=null; System.out.println(arr[10]); System.out.println(c); //如果一个try后边跟着多个catch,最小的条件放在前面,大的条件放在后面 }catch(ArithmeticException e){ System.out.println("被除数为0"); }catch (ArrayIndexOutOfBoundsException e){ System.out.println("数组索引越界"); }catch (Exception e){ System.out.println("发生错误"); } }}复制代码

异常分类

运行时异常:就是程序出现的错误 编译时异常:在编译程序时会出现的异常,必须在编译时候处理。

Throwable

a:getMessage()是获取异常信息 b:toString()是获取异常的名称 c:printStackTrace()抛出异常信息和名称,已经异常出现的位置,返回值为void

异常throw的方式处理

throws是抛出问题,暴露问题,让调用这使用 编译时异常需要对其处理 运行时异常可以处理也不可以处理 Throw概述: 在方法类部使用,程序不能进行,需要跳转,就用throw抛出异常 Throws是在方法名称上声明后面,跟在类名后面,可以接多个异常类名,可以用逗号隔开。

final ,finally,finallize

final是修饰类的,类不能被继承。 final修饰方法,不能被重写。 fianl修饰常量,只能赋值一次 finally,是try...catch的一个语句,不能单独使用,使用来释放资源 fianllize是一个方法,当垃圾回搜器不存在引用对象,由对象的垃圾回收此调用方法。

public class Demo7_Finally {    public static void main(String[] args) {        try {            System.out.println(10/0);        }catch (Exception e){            e.printStackTrace();            System.exit(0);            return;        }finally {            System.out.println("我这有没有执行");        }    }    ```###  自定义异常通过名称去确定啥类型的异常,这样就有针对性的解决异常```Javapublic class Demo8_Exception {}class AgeOutOfBoundsException extends Exception {    public AgeOutOfBoundsException() {        super();    }    public AgeOutOfBoundsException(String message) {        super(message);    }public class Demo8_Exception_Zhidingyi {    public static void main(String[] args) {        Person1 person1 = new Person1();     person1.setAge(99);        System.out.println(person1.getAge());    }}复制代码

异常注意事项

子类在重写父类的方法时候,子类必须抛出和父类相同,父类子类的异常,子类不能抛出父类没有的异常。 try... catch的区别 try后面要接运行的代码 finally后面接不运行的代码

转载于:https://juejin.im/post/5cde2a7cf265da7e8a4651d0

你可能感兴趣的文章
如何防止应用程序泄密?
查看>>
一文带你看懂物联网开源操作系统
查看>>
什么是实践中真正在用的数据科学系统?
查看>>
新型智慧城市:构建“互联网+”新生活
查看>>
韩企全球首造72层3D NAND芯片 下半年或量产
查看>>
《R语言编程艺术》——1.4 R语言中一些重要的数据结构
查看>>
如何让你的手机比别人最先升级到 Android L
查看>>
阿里云开源编程马拉松入围项目
查看>>
Mozilla 开源支持计划:首批捐助 7 开源项目 50 万美元
查看>>
《Photoshop混合模式深度剖析》目录—导读
查看>>
《为iPad而设计:打造畅销App》——抓住iPad的核心用法
查看>>
华尔街宫斗戏升温:银行巨头和纽交所争夺交易数据所有权
查看>>
《精通自动化测试框架设计》—第2章 2.6节使用数据库
查看>>
《网站性能监测与优化》一2.4 软件服务应用网站
查看>>
《HTML5 开发实例大全》——1.26 使用鼠标光标拖动网页中的文字
查看>>
【JSP开发】有关session的一些重要的知识点
查看>>
生产库中遇到mysql的子查询
查看>>
redis debug命令详解
查看>>
3144: [Hnoi2013]切糕
查看>>
异构数据库
查看>>