开发者社区> 唐家四少官微> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

java 异常定义

简介: java异常知识
+关注继续查看

在Java中,运行代码的时候难免会遇到错误,然后在错误行的代码终止执行后面的逻辑。出现错误的时候会抛出异常,异常的原因可以分为两大类:

  • 用户输入了非法数据。
  • 要打开的文件不存在。
  • 网络通信时连接中断,或者JVM内存溢出。

这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常:

  • 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
  • 运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
  • 错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。

举个栗子:

public class Test {
    public static void main(String[] args) {
        List<Integer> data = Arrays.asList(1, 2, 3, 4);
        System.out.println(data.get(10));
    }


这种代码会出现数组越界的异常:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
    at java.util.Arrays$ArrayList.get(Arrays.java:3841)
    at Test.main(Test.java:22)


比如如果进行除法运算,被除数为0的时候也会抛出异常:

public class Test {
    public static void main(String[] args) {
        System.out.println(10 / 0);
    }
}

异常打印:

Exception in thread "main" java.lang.ArithmeticException: / by zero
    at Test.main(Test.java:16)

Throwable有两个直接子类 ​Error​ 和 ​Exception​ ,其中 ​Error​ 代表程序中产生的错误, ​Exception​ 代表程序中产生的异常。

  • Error​ 类称为错误类,它表示Java运行时产生的系统内部错误或资源耗尽的错误,是比较严重的,仅靠修改程序本身是不能恢复执行的,例如系统崩溃,虚拟机错误等。
    • Error​ 类有一批子类,比如与:
    • IOError​  I/O错误
    • OutOfMemoryError​  内存溢出
  • Exception​ 类称为异常类,它表示程序本身可以处理的错误。在Java程序开发中进行的异常处理,都是针对Excption类及其子类的。在Exception类的众多子类中有一个特殊的RuntimeException类,该类及其子类用于表示运行时异常。除了此类,Exception类下所有其他的子类都用于表示编译时异常。
    • IOException​  I/O异常,比如文件找不到抛出 ​FileNotFoundException 
    • RuntimeException​  运行时异常,比如空指针抛出 ​NullPointerException 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
java中的异常--Exceptions in Java-- 第一部分
作者和出处     By Bill Venners, JavaWorld.com  http://www.javaworld.com/javaworld/jw-07-1998/jw-07-exceptions.html Exceptions in Java     当一个方法遇到了一个他不能处理的异常,这个方法有可能抛出异常。
783 0
java中的异常--Exceptions in Java-- 第四部分
This coffee has an unusual taste.  In the UnusualTasteException case, both drinkCoffee() and serveCoffee() methods completed abruptly.
728 0
java中的异常--Exceptions in Java-- 第三部分
Must enter integer as first argument. Although the above example had only one catch clause, you can have many catch clauses associated with a single try block.
638 0
java中的异常--Exceptions in Java-- 第五部分
 TemperatureException        at VirtualPerson.drinkCoffee(VirtualPerson.java:20)        at VirtualCafe.
843 0
java中的异常--Exceptions in Java-- 第二部分
 然而,很多时候,你将希望传达更多的错误信息而不只是一个java.lang中的类。通常这个异常类本身标志遇到这个不正确的情况。例如,如果一个被抛出异常拥有IllegalArgumentException异常。
558 0
在java程序中实现发送邮件的功能
最近比较忙,在做一个人事管理系统的项目,在这项目需求中,需要一个发送邮件的功能。这个时候我们可以使用javamail的jar包来实现完美需要的功能,在这里简单的分享一个最基础的发邮件功能。 首先我们需要去下载两个jar包,smtp.jar和mailapi.jar,导入到自己的项目中应该就不用我说了吧,大家都是有经验的开发人员了。 public class Demo1 {
1342 0
数据结构笔记--栈的总结及java数组实现简单栈结构
杂谈"栈"结构:     栈(Stack)是一种插入删除操作都只能在一个位置上进表,这个位置位于表的末端,叫做栈顶(Top).   对栈的基本操作有push和pop,表示进栈和出栈.也就相当于插入和删除操作.
799 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Java基础入门(四)-泛型、反射、注解
立即下载
JAVA反射原理以及一些常见的应用
立即下载
Java开发手册1.4.0
立即下载