在java中什么是编译时异常,java编译异常有哪几个
本篇文章给大家谈谈在java中什么是编译时异常,以及java编译异常有哪几个对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
什么是Java的异常
异常通常指,你的代码可能在编译时没有错误,可是运行时会出现异常。比如常见的空指针异常。也可能是程序可能出现无法预料的异常,比如你要从一个文件读信息,可这个文件不存在,程序无法运行下去了,故程序要抓这些异常,通过异常处理机制来抛出这些异常,程序员就可以通过抛出的异常来修改代码。try{}catch{}finally{}try块中放入可能会出现异常的代码,catch块负责捕获异常,finally块负责处理一些必须执行的代码,比较关闭流等。
常见的java异常有:
空指针异常类:NullPointerException
当应用试图在要求使用对象的地方使用了null时,抛出该异常。譬如:调用null对象的实例方法、访问null对象的属性、计算null对象的长度、使用throw语句抛出 null等等。
类型强制转换异常:ClassCastException
假设有类A和B(A不是B的父类或子类),O是A的实例,那么当强制将O构造为类B的实例时抛出该异常。该异常经常被称为强制类型转换异常。
数组下标越界异常:ArrayIndexOutOfBoundsException
当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常。
文件未找到异常:FileNotFoundException
当试图去引用一个路径下的某个文件而该路径下没有文件时,抛出该异常。
数字格式异常:NumberFormatException
当试图将一个String转换为指定的数字类型,而该字符串却不满足数字类型要求的格式时,抛出该异常。
数据库操作异常:SQLException
当执行一段SQL语句或该SQL不符合规则时抛出该异常。
输入输出流异常:IOException
java语言中什么叫做编译错误
就是你用javac命令将源代码(.java)文件翻译成字节码(.class)文件时产生的错误。
比如,变量名不符合规定,变量没定义,关键字拼写错误等等。。。
java的编译器(javac)会根据java语法规定做一些检查,不符合规定的就不通过编译。
编译错误,是相对于运行时错误而言的。
运行时错误,是你用java命令运行时会出现的错误,一般会抛出异常。
java编译异常有哪几个
编译异常是Exception下除了RuntimeException及其子类以外的所有子类
Java提供了两类主要的异常:RuntimeException和CheckedException.
checked异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。
runtime exception,也称运行时异常,我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。
不管是不是RuntimeException只要有异常而且你还没try/ catch那他一定会中断执行非RuntimeException在编译的时候编译器会帮你检查有没有正确、完整的try/ catch如果没有编译不过 RuntimeException在编译的时候不检查
参考自:http://m.blog.csdn.net/blog/zhou1216141078/12921609
Java之运行时异常与编译时异常区别
Java中用2种方法处理异常:
1.在发生异常的地方直接处理;
2.将异常抛给调用者,让调用者处理。
Java常见的异常:
(1)编译时异常:Java.lang.Exception
(2)运行期异常:Java.lang.RuntimeException
Java.lang.Exception和Java.lang.Error继承自Java.lang.Throwable;
Java.lang.RuntimeException继承自Java.lang.Exception.
编译时异常:程序正确,但因为外在的环境条件不满足引发。例如:用户错误及I/O问题----程序试图打开一个并不存在的远程Socket端口。这不是程序本身的逻辑错误,而很可能是远程机器名字错误(用户拼写错误)。对商用软件系统,程序开发者必须考虑并处理这个问题。Java编译器强制要求处理这类异常,如果不捕获这类异常,程序将不能被编译。
运行期异常:这意味着程序存在bug,如数组越界,0被除,入参不满足规范.....这类异常需要更改程序来避免,Java编译器强制要求处理这类异常。
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!