查看“【面试:Java异常】”的源代码
←
【面试:Java异常】
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[category:面试]] == 说说Java中异常的分类<ref name="JavaCore_异常">[[核心技术:异常、断言和日志#错误处理]]</ref> == [[File:Java 中的异常层次结构.png|600px]] [[File:Java异常类.png|600px]] '''Throwable'''(可抛出):异常类的最终父类,它有两个子类,Error 与 Exception。 : Throwable中常用方法有: * getCause():返回抛出异常的原因。如果 cause 不存在或未知,则返回 null。 * getMeage():返回异常的消息信息。 * printStackTrace():对象的堆栈跟踪输出至错误输出流,作为字段 System.err 的值。 异常对象都是派生于'''Throwable''' 类的一个实例: # '''Error'''(错误):类层次结构描述了Java 运行时系统的内部错误和资源耗尽错误。 #* 表示程序无法处理的错误,一般与程序员的执行操作无关。 #* 理论上这些错误是不允许发生的,如果发生,也不应该试图通过程序去处理,所以Error不是try-catch的处理对象,而JVM一般的处理方式是终止发生错误的线程。 ## '''VirtualMachineError'''(虚拟机错误):表示虚拟机出现错误。 ##* 在Java运行时内存中,除程序计数器外的虚拟机栈、堆、方法区在请求的内存无法被满足时都会抛出 OutOfMemoryError; ##* 而如果线程请求的栈深度超出虚拟机允许的深度时,就会抛出 StackOverFlowError。 ## '''AWTError'''(AWT组件出错):这个错误并不是很常用。 ##* AWT 与 Swing 的区别: ##*# AWT是使用操作系统中的图形函数的抽象窗口工具,用C\C++编写,为了实现Java“一次编译,处处运行”的理念,AWT使用各个操作系统图形函数的交集,所以功能较差,但运行速度较快,适合嵌入式Java; ##*# 而Swing组件是基于AWT编写的图形界面系统,它用纯Java编写,所以必然实现了“一次编译,处处运行”,但相较于AWT运行速度较慢,适合 PC 使用。 # '''Exception'''(异常): ## '''RuntimeException''':由程序错误导致的异常属于RuntimeException; ##: 派生于 RuntimeException 的异常包括: ##* NullPointerException:空指针异常。调用了不存在的对象或未经实例化或初始化的对象时会抛出,如当试图操作一个空对象(赋值为null)的属性、方法时就会抛出。 ##* ArithmeticException:算术条件异常。最常见的就是 0 作除数时会抛出。 ##* ClassNotFoundException:类未找到异常。在通过反射 Class.forName(“类名”) 来获取类时,如果未找到则会抛出异常。 ##* ArrayIndexOutOfBoundsException:数组索引越界异常。当试图操作数组的索引值为负数或大于等于数组大小时会抛出。 ##* NegativeArraySizeException:数组长度为负值异常。一般在初始化数组大小为负值时抛出。 ##* ArrayStoreException:数组类型不匹配值异常。例如将一个 Object 数组中加入一个 Integer 对象与一个 String 对象时,类型不匹配就会抛出。 ##* IllegalArgumentException:非法参数异常。会在使用 Java 类库方法时传入参数值越界时抛出。 ## '''其他异常''':由于像 I/O 错误这类问题导致的异常; ##: 不是派生于 RuntimeException 的异常包括: ##* IOException:I/O 错误; ##* EOFExcption:试图在文件尾部后面读取数据; ##* FileNotFound:试图打开一个不存在的文件; ##* 试图根据给定的字符串查找 Class 对象,而这个字符串表示的类并不存在; === 关于 '''受查异常''' 与 '''非受查异常''' === 异常分为两类:可查异常与不可查异常。 # 非受查(unchecked) :派生于 Error 类或 RuntimeException 类的所有异常。【编译期不会检查,所以在程序中可不处理,但如果发生,会在运行时抛出。】 # 受查(checked) :所有其他的异常称为。【编译器要求必须处理,否则不能通过编译,使用try-catch捕获或者throws抛出】 == 参考 == <references/>
返回至“
【面试:Java异常】
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
笔记
服务器
数据库
后端
前端
工具
《To do list》
日常
阅读
电影
摄影
其他
Software
Windows
WIKIOE
所有分类
所有页面
侧边栏
站点日志
工具
链入页面
相关更改
特殊页面
页面信息