博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 异常
阅读量:7237 次
发布时间:2019-06-29

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

在Java语言中,我们用异常对象来表示不同的异常。

所谓Java异常对象就是一个存放着相关错误信息的对象,如果方法运行时产生了异常,该方法就可以抛出一个异常对象

为了表示不同种类的异常,Java语言中定义了许多异常类。

什么是异常 有异于常态,和正常情况不一样,有错误出现,阻止当前方法或作用域,称之为异常。

非检察异常:

1.空指针异常(NullPointerException)

2.数组下标越界异常ArrayIndexOutOfBoundsException

3.类型转换异常(ClassCastException)

4.算术异常(ArithmeticExcetion)

在Java语言中,任何的异常对象都是Throwable类的直接子类或间接子类的实例。Java的类库已经提供了一些常见的异常类,如果这些异常类不能够满足要求,用户也可以创建自己的异常类。**常见的而异常类**复制代码
  • ArithmeticException
  • ArrayIndexOutOfBandsException
  • IOException
  • FileNotFoundException
  • NullPointerException
  • NumberFormatException

Error类表示Java运行时产生的系统内部错误或资源耗尽等严重错误。 这种错误通常是程序无法控制和解决的,如果发生这种错误,通常的做法是通知用户并中止程序的执行。

常见的错误类

  • NoClassDefFoundError
  • OutOfMemoryError
  • VirtualMachineError

异常抛出格式1

<访问权限修饰符> <返回值类型> <方法名>(参数列表) throws 异常列表

public             void                  troubleSome()               throws IOException复制代码

异常抛出格式2

try{

抛出异常的代码}catch (某Exception类型 e){		处理该异常类型的代码}catch (某Exception类型 e){		处理该异常类型的代码}finally{错误也执行的代码复制代码

}

异常处理练习一

代码1:

try{

System.out.println("请输入整数");        Scanner scanner = new Scanner(System.in);        int age = scanner.nextInt();        System.out.println("十年后你"+(age + 10) + "岁");    }catch (Exception e){        System.out.println("你应该输入整数");    }    System.out.println("程序结束啦");        多类型处理:复制代码

try{

System.out.println("请输入整数");        Scanner scanner = new Scanner(System.in);        int age = scanner.nextInt();        System.out.println("十年后你"+(age + 10) + "岁");    }catch (InputMismatchException e){        System.out.println("你应该输入整数");    }catch (ArithmeticException e){        System.out.println("除数不能为0");    }    System.out.println("程序结束啦");复制代码

异常来顺序是 先子类后父类(必须这样子)

finally

当一个方法的某条语句抛出异常后,该方法剩余的语句将无法继续执行。这种情况下,方法往往无法将其占用的资源进行释放。 解决方法: 在每个catch子句的异常处理代码中也加上资源释放的代码,但这种方法非常麻烦; Java语言的异常处理机制中提供了一个更好的方案-程序员可以使用finally子句来统一进行资源释放之类的工作。

代码如下; try{

System.out.println("请输入整数");        Scanner scanner = new Scanner(System.in);        int age = scanner.nextInt();        System.out.println("十年后你"+(age + 10) + "岁");    }catch (InputMismatchException e){        System.out.println("你应该输入整数");    }    **finally** {        System.out.println("*********** 我就要执行 *********");    }    System.out.println("程序结束啦");复制代码

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

你可能感兴趣的文章
RAID5实验
查看>>
js 文本框禁止粘贴复制功能
查看>>
我的友情链接
查看>>
关于SAN 的设计-Host 设计
查看>>
说个冷笑话:历史剧不好拍啊
查看>>
java关键字
查看>>
java算术运算符
查看>>
吃巧克力不会胖
查看>>
关于print/println/"\n"的总结
查看>>
VSAN 第 2 部分 – 需要哪些准备工作?
查看>>
【持续更新】SpringCloud服务注册与调用Demo
查看>>
oracle中预制的用户启用
查看>>
Jest
查看>>
composer国内镜像
查看>>
python--字符串类型
查看>>
cisco asa 5520 8.4 (三) -- 日志服务器
查看>>
Ubuntu 14.04的32位支持
查看>>
领导比你更专业的下属
查看>>
ASM4 读取java类注解
查看>>
table转javabean
查看>>