java中如何区分编译错误和运行错误

来源:互联网 发布:python 分钟减1 编辑:程序博客网 时间:2024/05/18 17:40

一、基础知识

1.错误

  错误(error)指程序运行时遇到的硬件错误,或者操作系统、虚拟机等系统软件错误或操作错误;

  错误对于程序而言是致命的;

  程序本身不能处理错误,只能依靠外界敢于,否则会一直处于非正常状态。如:没有找到.class文件或者文件中没有main()方法等;

  java.lang.Error是错误类,产生错误时,java虚拟机生成并抛出Error类对象。如:没有main方法产生NoClassDefFoundError,使用new分配内存时,没有可用内存产生OutOfMemoryError.

2.异常

  异常实质在硬件、操作系统或虚拟机等系统软件运行正常时,程序产生的运行错误;

  异常对于程序是非致命的;

  异常处理机制能使程序捕捉和处理异常,由异常处理代码调整程序运行方向继续运行;

  java.lang,Exception异常类是所有异常类 所后构成树层次结构的根类。

  Java定义异常类主要分为运行异常和非运行异常。运行异常是指由程序本身错误或数据错误引发的异常,这类异常程序设计时大多可以避免;非运行异常是指由程序运行环境错误引发的异常,这类异常必须捕获并处理。

二、编译错误和运行错误的区分

1.编译错误一般指语法错误或者很明显的逻辑错误。

如:缺少分号,少写括号......

在eclipse往往会画红线;

2.运行错误是在没有编译错误的基础上运行后产生的错误。

如:空指针异常,除数为0......