java的异常类型有哪两种
1、五种常见的异常:ClassCastException(类转换异常)、IndexOutOfBoundsException(数组越界异常)、NullPointerException(空指针异常)、ArrayStoreException(数据存储异常,操作数组时类型不一致)、BufferOverflowException(还有IO操作的,缓冲溢出异常)。
2、java运行时异常是可能在java虚拟机正常工作时抛出的异常。java提供了两种异常机制。一种是运行时异常(RuntimeExepction),一种是检查式异常(checked execption)。
检查式异常:我们经常遇到的IO异常及sql异常就属于检查式异常。对于这种异常,java编译器要求我们必须对出现的这些异常进行catch 所以 面对这种异常不管我们是否愿意,只能自己去写一堆catch来捕捉这些异常。
运行时异常:我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。
扩展资料:
Java特点
Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载和多继承特征,并且不使用主文件,免去了预处理程序。
因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。
参考资料:百度百科-Java
1.检查型异常,这样的异常继承于Excetpion,就是在编译期间需要检查,如果该异常被throw,那么在该异常所在的method后必须显示的throws,调用该method的地方也必须捕获该异常,否则编译器会抛出异常.ejb里的RemoteException是一个这样的异常.来源:考试大
2.运行时异常,就是在运行期间系统出现的异常,该类异常继承于RuntimeException,该类异常在编译时系统不进行检查,如NullPointerExcetpion,NumberFormatException.
3.系统错误,一般是JVM出现异常时抛出的异常,如OutofMemoryError,这样的异常在J2EE开发中是不用关心的.考试大论坛
在J2EE开发中,检查型异常被滥用以至于过一段时间程序员自己都看不懂抛出这样的异常,.里面封装的这些错误信息是干什么用的,更可怕的是有好多有用的信息找不到了.比如SQLException和RemoteException这样的异常我们没必要再进行封装,这样的异常只对我们调试程序有用,而对客户来说它就是一个”系统错误”而已.异常处理有一个简单的原则,你什么时候需要封装自己的检查型异常?就是你很清楚自己抛出这个异常的用途时,比如用户输入用户名和密码要登录,但用户名和密码不匹配,你就要定义一个检查型异常,客户端通过捕获该异常,然后把相应的错误信息反馈给客户.而其它的自己未预期的错误或者异常比如SQLException,只需封装到EJBException中,ejb container会把它的信息追加到RemoteException里,这样客户端捕获RemoteException后把它写到系统日志里,就很容易进行调试。
Java 异常的处理
在 Java 应用程序中,对异常的处理有两种方式:处理异常和声明异常。
处理异常:try、catch 和 finally
若要捕获异常,则必须在代码中添加异常处理器块。这种 Java 结构可能包含 3 个部分,
都有 Java 关键字。下面的例子中使用了 try-catch-finally 代码结构。
import java.io.*; public class EchoInputTryCatchFinally { public static void main(String args[]){ System.out.println(”Enter text to echo:”); InputStreamReader isr = new InputStreamReader(System.in); BufferedReader inputReader = new BufferedReader(isr); try{ String inputLine = inputReader.readLine(); System.out.println(”Read:” + inputLine); } catch(IOException exc){ System.out.println(”Exception encountered: ” + exc); } finally{ System.out.println(”End. “); } } 其中:
try 块:将一个或者多个语句放入 try 时,则表示这些语句可能抛出异常。编译器知道可能要发生异常,于是用一个特殊结构评估块内所有语句。
catch 块:当问题出现时,一种选择是定义代码块来处理问题,catch 块的目的便在于此。catch 块是 try 块所产生异常的接收者。基本原理是:一旦生成异常,则 try 块的执行中止,JVM 将查找相应的 JVM。
finally 块:还可以定义 finally 块,无论运行 try 块代码的结果如何,该块里面的代码一定运行。在常见的所有环境中,finally 块都将运行。无论 try 块是否运行完,无论是否产生异常,也无论是否在 catch 块中得到处理,finally 块都将执行。
try-catch-finally 规则:
必须在 try 之后添加 catch 或 finally 块。try 块后可同时接 catch 和 finally 块,但至少有一个块。
必须遵循块顺序:若代码同时使用 catch 和 finally 块,则必须将 catch 块放在 try 块之后。
catch 块与相应的异常类的类型相关。
一个 try 块可能有多个 catch 块。若如此,则执行第一个匹配块。
可嵌套 try-catch-finally 结构。
在 try-catch-finally 结构中,可重新抛出异常。
除了下列情况,总将执行 finally 做为结束:JVM 过早终止(调用 System.exit(int));在 finally 块中抛出一个未处理的异常;计算机断电、失火、或遭遇病毒攻击。
声明异常
若要声明异常,则必须将其添加到方法签名块的结束位置。下面是一个实例:
public void errorProneMethod(int input) throws java.io.IOException { //Code for the method,including one or more method //calls that may produce an IOException } 这样,声明的异常将传给方法调用者,而且也通知了编译器:该方法的任何调用者必须遵守处理或声明规则。声明异常的规则如下:
必须声明方法可抛出的任何可检测异常(checked exception)。
非检测性异常(unchecked exception)不是必须的,可声明,也可不声明。
调用方法必须遵循任何可检测异常的处理和声明规则。若覆盖一个方法,则不能声明与覆盖方法不同的异常。声明的任何异常必须是被覆盖方法所声明异常的同类或子类。
Exception又包含了运行时异常(RuntimeException, 又叫非检查异常)和非运行时异常(又叫检查异常)
(1) Error是程序无法处理了, 如果OutOfMemoryError、OutOfMemoryError等等, 这些异常发生时,
java虚拟机一般会终止线程 .
(2) 运行时异常都是RuntimeException类及其子类,如
NullPointerException、IndexOutOfBoundsException等, 这些异常是不检查的异常, 是在程序运行的时候可能会发生的,
所以程序可以捕捉, 也可以不捕捉. 这些错误一般是由程序的逻辑错误引起的, 程序应该从逻辑角度去尽量避免.
(3) 检查异常是运行时异常以外的异常, 也是Exception及其子类, 这些异常从程序的角度来说是必须经过捕捉检查处理的, 否则不能通过编译.
如IOException、SQLException等
选择三种进行异处理 一代码块用try..catch进行异捕获处理; 二 该代码体外用throws进行抛声明告知调用者段代码能现些异需要谨慎处理两种情况: 声明抛异非运行异调用者必须显示用try..catch块进行捕获或者继续向层抛异 声明抛异运行异调用者选择进行异捕获处理 三代码块用throw手抛异象两种情况跟二)类似: 抛异象非运行异调用者必须显示用try..catch块进行捕获或者继续向层抛异 抛异象运行异调用者选择进行异捕获处理 (终异抛给main则相于交给jvm自处理jvm简单打印异信息) 处理设计建议 必要使用异才使用异要用异控制程序流程 切忌使用空catch块 检查异非检查异选择 注意catch块顺序 要提供给用户看信息放异信息 避免志信息记录同异 异处理尽量放高层进行 finally释放资
什么是< t>?
JAVA 中<t>是泛型的意思 意思是Tree这个类里面需要用到另外一个类,但是又不能确定要用到的那个类的具体类型,所以暂时用T来代替,当具体的程序知道要用到的那个类型是什么的时候就用那个类型来代替T,就ok了。例如我需要实例化一个Tree类,需要用到的那个类是String,那么我就可以这么来实例化Tree<...
电脑用avafind复制文件时突然卡死是什么原因?
你好 请从以下几方面分析解决 1 电脑中毒或中恶意软件,也可能引起电脑异常,解决办法是,升级杀毒软件,杀毒,实在不行,就重装或恢复过系统。重装或恢复过系统可以完全解决软件方面的问题。2 配置不合理,不协调,bios设置错误,也会引起电脑异常,所以装机或升级硬件要找更专业的人员解决。可以发配置下来...
java.lang.ClassCastException怎么解决
这里是把jingyan赋值给baidu,由于类型不一致,所以要进行类型强制转化,用BaiDu这个类来进行强制转换,修改好后,再来执行,发现此时可以正常运行,输出想要的结果。ava是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心...
我家的AVA下好后 提取战地之王客户端资源 到了100%后就没了。怎么回事...
大量的蠕虫病毒迅速在系统内复制,造成CPU资源占用率据高不下。解决办法:用可靠的防病毒软件彻底清理系统内存和本地硬盘,并且打开系统设置软件,察看有无异常启动的程序。经常性更新升级防病毒软件和防火墙,加强防毒意识,掌握正确的防杀毒知识。4,控制面板 - 管理工具 - 服务-RISING REALTIME MONITOR ...
AVA玩着卡
可能你后台程序太多了 电脑桌面右下角你看看 比如有时杀毒软件更新 要重启杀毒引擎 那个时候就特别卡 你用360安全卫士-高级工具 在里面看看 如图 这几个里面有没有异常的东西 还可以下驱动精灵更新下显卡驱动试试 建议更新前先卸载旧驱动 实在不行就重装系统 或者还原吧 ...
AVA帐号被封,怎么办,封号查询,查不到原因,写了 3个无。, 游戏说被封了...
官网有被封号的名单。第一次开挂封7天,第二次封30天,第三次及以上封90天。谢谢采纳!
AVA上不了了,怎么解决?求高手!
[在线安装][http:\/\/down.360safe.com\/instbeta.exe][链接不管用?]在360软件管家中搜索[360游戏加速球]。2.如果你开启了许多对电脑有挑战的特效,那么我建议你还原所有特效。然后把渲染效果改为*3.0。然后你会发现玩游戏顺畅多了。3.如果你是在玩游戏的时候出现渲染线程异常的窗口,那么照这样改...
...+Hibernate整合后SQL 出现ava.lang.ClassCastException: 异常
ClassCastException类型转换异常,但是你说能在jsp页面执行说明转换是没有问题,那就应该是2个对象在加载时使用了不同的 ClassLoader,应该是。
玩战地之王(AVA)时,CPU使用率100%
运行战地之王(AVA)内存方面使用也很大,刚进游戏一下从300多M蹦到了1000多M。运行其他的网游也就是蹦到500多M,运行好几个小时以后才1000多M! 请问这样的配置运行战地之王(AVA),怎么可能会CPU使用率100%,是什么原因造成的,有没有解决的办法。小弟求求各位大虾拉,帮帮忙啊,有没有解决的办法,可以使CPU的使用...
java排序中的ArrayIndexOutOfBoundsException问题
2从小到大:3从小到大:5从小到大:7从小到大:7从小到大:9从小到大:76 顺便回答一下,java里可以输出数字的代码是,都可以 System.out.println(1);System.out.print(2);这些输出方法都是对函数数据类型的 ava里可以输入数字的代码是 Scanner s=new Scanner(System.in);int a=s.nextInt();...
斗杭海珠: * Runtime exceptions:在定义方法时不需要声明会抛出runtime exception; 在调用这个方法时不需要捕获这个runtime exception; runtime exception是从java.lang.RuntimeException或java.lang.Error类衍生出来的.* Checked exceptions:定义方法时必须声明所有可能会抛出的checked exception; 在调用这个方法时,必须捕获它的checked exception,不然就得把它的exception传递下去; checked exception是从java.lang.Exception类衍生出来的.
滨江区17371276828: Java中的异常分类及区别 - ?
斗杭海珠: Java运行时异常:由java虚拟机抛出的异常.用户不必处理. 一般异常是用户可以抛出的异常,如果抛出调用必须进行处理. 运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误.java编译器要求方法必须声明抛出可能...
滨江区17371276828: java中,将运行错误分成那两类 - ?
斗杭海珠: 异常的继承结构:基类为Throwable,Error和Exception继承Throwable,RuntimeException和IOException等继承Exception,具体的RuntimeException继承RuntimeException. ② Error和RuntimeException及其子类成为未检查异常(unchecked),其它异常成为已检查异常(checked).
滨江区17371276828: Java中的异常类型有哪些 - ?
斗杭海珠: 1. java.lang.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或...
滨江区17371276828: java语言中的异常有多少种,请详细解答,并标明所对应的均为什么类型?
斗杭海珠: Java提供了两类主要的异常:runtime exception和checked exception.所有的checked exception是从java.lang.Exception类衍生出来的,而runtime exception则是从java.lang.RuntimeException或java.lang.Error类衍生出来的. * Runtime ...
滨江区17371276828: java异常除了受控异常和运行时异常还有别的吗 他俩有什么区别 - ?
斗杭海珠: 除了最后一个SQLException外都是运行时异常(RuntimeException的子类).java异常就这两种,受控异常你必须或者用try...catch...来处理,或者用throws来丢给上一层方法,否则编译时就通不过;而运行时异常你不必非要这样处理,编译时没有问题.
滨江区17371276828: java运行时异常有哪些 - ?
斗杭海珠: 常见的五种异常:1、ClassCastException(类转换异常)2、IndexOutOfBoundsException(数组越界)3、NullPointerException(空指针)4、ArrayStoreException(数据存储异常,操作数组时类型不一致)5、还有IO操作的BufferOverflowException异常
滨江区17371276828: java都有哪些异常? - ?
斗杭海珠: 1. 异常机制 异常机制是指当程序出现错误后,程序如何处理.具体来说,异常机制提供了程序退出的安全通道.当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器. 传统的处理异常的办法是,函数返回一个特殊的结果...
滨江区17371276828: Java编程中 常见的异常有哪几种 ???
斗杭海珠:ArithmeticException除数为0的异常 NullPointerException空指针异常UnsupportedOperationException不支持的操作 IllegalArgumentException非法参数 IndexOutOfBoundsException索引出界 IllegalStateException非法状态 ClassCastException数据类型转换异常 NumberFormatException字符串转换为数字类型时抛出的异常 IllegalAccessException没有访问权限 java讨论交流 qq群320505897
滨江区17371276828: Java中异常的分类 - ?
斗杭海珠: 程序出了那种异常JVM就会抛出相应的异常 比如代码:ArrayIndexOutOfBoundsExceptionpublic void demo1(){ try{ int a = 10/0; }catch(ArithmeticException ae){ System.out.println(“算术运算异常:”+ae.getMessage());}catch(Exception e){ ...