Java学习——42、错误和异常

程序不是一写就能够运行的,总会出现这样那样的错误,要实现程序的功能,必须能够改错。Java会提示错误,大部分的错误根据提示进行修改即可。但也有一些错误,是程序所修改不了的。

本文主要介绍可以代码中可以修改的,称为异常。

Java中的错误,根据其性质,可分为:错误和异常。

1、  错误

错误(error)指程序运行时遇到的硬件错误,或操作系统、虚拟机等软件错误,对程序而言是致命的,会导致程序无法运行。

如:当要使用另一个类的数据,包中却没有那个类的.class文件时,程序会报错,直接不能运行。

此类错误在程序中不能修改。

程序中能做出修改的是异常。

2、  异常

异常(exception)是指程序产生的运行错误。

比如:除数为0。

异常对于程序而言是非致命的,可在程序中进行修改,异常处理机制能够捕获和处理异常。

3、Java已有处理异常的类

Java.lang.Exception异常类是Java定义的所有异常类所构成的树层次结构的根类,其他异常类都是其的子类或后代类。

错误类:Errror和异常类Exception都是Throwable的子类。

有一些异常Java可以报:

(1)      ArithmeticException

此为算术异常,比如除数为0时,就会报此异常,如下图所示:

提示说明/by zero,被0整除,出错。

(2)      NullPointerException

此为空对象异常,比如对空数组进行操作时,会报此异常,如下图所示:

提示说明:变量没有被初始化。

在Java中数组必须先new然后才能被修改。

(3)      ClassCastException

类型强制转换异常,如下图所示:

(4)      NegativeArraySizeException

负数组长度异常,如果数组的长度为负数,会报此异常,如图所示:

(5)      ArrayIndexOutOfBoundsException

下标越界异常。如果数组下标越界,就会产生此异常。如图所示:

当运行到i=3时,a[3]=4,正常输出,此时i++后,i=4,此时i是小于5的,要输出a[4],但数组a中只有四个元素,只能输入从a[0]到a[3],故会报此异常。

可能会出的异常很多,本文不可能一一列举,只是在遇到异常时,根据它的提示,做出正确的修改即可。

(0)

相关推荐

  • 面试官:说说你对Java异常的理解

    回复"000"获取大量电子书 背景 不管是工作中还是面试中,异常这一块还是非常重要的.作为Java开发人员来说,学会如何处理异常,哪些异常必须自己处理,哪些异常可以往外抛等等,这些 ...

  • java学习——44、方法抛出的异常

    方法声明抛出异常的throws子句 如果一个方法产生异常,而该方法不想处理或不能处理该异常,则可以在方法声明时,采用throws子句声明该方法将抛出异常. 带有throws子句的方法声明的语法格式如下 ...

  • Java学习——43、异常处理措施

    很多异常,比如除数为0这些,都可以在写程序时对其进行处理. 处理的方式大多用if语句,将有可能产生的异常排除. 但在设计程序的时候,有时候想得并不那么完备,可能会出现一些意想不到的异常,Java提供了 ...

  • Java异常处理(观察常见异常)

    一:观察异常 在一上一节我们讲解了常见的异常类型,这次可我们通过代码来观察这些异常是如何出现的. DEMO:算术异常   此时出现的是算术异常. DEMO:数组越界异常   发现了出现异常的之后的代码 ...

  • 有的人对学习有错误的认知,以为学习几遍就...

    有的人对学习有错误的认知,以为学习几遍就学会或者永远记住了就是会学习,这不叫学习,这叫走捷径. 学习需要的是高度的专注力,反复地学习,坚持地学习. 没有专注力,总是走神,你都没把知识放在心上,你怎么会 ...

  • Java学习-注解和反射

    注解 java.Annotation Annotation的作用:可以呗其他程序读取 Annotation的格式 注解是:@注释名 在代码中存在,还可以添加一些参数 ​@SuppressWarning ...

  • Java学习-多线程

    多线程 任务(Task).进程(Process).线程(Thread) 进程的创建 1.继承Thread类 自定义线程类继承Thread类 重写run()方法,编写线程执行体 创建线程对象,调用sta ...

  • Java基础知识总结(异常机制、集合、JUC、IO)

    Java基础知识总结(异常机制、集合、JUC、IO)

  • Java学习-Mybatis

    Mybatis Maven依赖: <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependenc ...

  • Java 学习笔记

    您对计算机(电脑)有了解吗? 计算机组成 系统软件 直接和硬件交互的软件叫系统软件,例如 win7.win8.Linux.mac等操作系统 应用软件 通常在运行在系统软件上,也就是在系统软件上开发的软 ...