Java学习笔记-异常
来源:互联网 发布:新浪微博淘宝版入口 编辑:程序博客网 时间:2024/06/04 17:41
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
1.异常:
什么是异常:就是在程序运行时出现的不正常情况。
程序可能出现的错误或问题
用户输入错误导致的异常:如用户不正常使用程序,输入一些非法参数
设备硬件等发生的错误:如硬盘损坏等
物理限制:如存储空间不足等
代码错误:在程序编写的方法可能不正确,返回错误参数等。
异常分为可处理异常(Exception)和不可处理异常(Error)
异常体系:
Throwable
|--Error//不可处理的异常
|--Exception//可处理异常
|--RuntimeException//异常中的特殊类,运行时异常,在函数中抛异常,可以不用在函数上声明
2.处理异常的几种方法:
(1)try{
要处理的代码
}catch(异常类 变量){
处理异常的代码
}finally{
一定会执行的语句
}
(2)try{
要处理的代码
}catch(异常类 变量){
处理异常的代码
}//或者多个catch块,出现多个catch块时父类异常要在最下边。
(3)try{
要处理的代码
}finally{
一定会执行的语句
}
(4)异常还可以在函数上抛出,可以抛多个异常用,号隔开
代码示例:
package ThrowableTest;public class TryTest {public static void main(String [] args){try {int s =get(4,0);System.out.println(s);} catch (ArithmeticException e) {//try{}catch(){}处理异常e.printStackTrace();}finally{//一定会被执行的代码,只有遇到system.exit(0)时才不会被运行System.out.println("over");}}public static int get(int x,int y)throws ArithmeticException{//在函数上声明异常用throws关键字return x/y;}}
运行结果:
java.lang.ArithmeticException: / by zero
at ThrowableTest.TryTest.get(TryTest.java:15)
at ThrowableTest.TryTest.main(TryTest.java:6)
over
3.自定义异常
继承Exception异常或RuntimeException异常
(1)为了让该类具备可抛性
(2)该类具备操作异常的共性方法。
代码示例:
class ZiDingYiException extends Exception { private String msg; ZiDingYiException(String msg) {
super(msg);//将会返回输入的信息 } }
4.throw与throws的区别
throw定义在函数内,用于抛出异常对象。
throws定义在函数上,用于抛出异常类,可以抛出多个用逗号隔开。
当函数内容有throw抛出异常对象,并未进行try处理。必须要在函数上声明,否则编译失败。
注意:RuntimeException除外。
5.可处理异常分两种:
(1)编译时被检测的异常
(2)编译时不被检测的异常(RuntimeException)如果在函数内抛的是RuntimeException异常及子类,函数上可以不必声明。
6.异常在子父类覆盖中的体现:
子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者该异常的子类。
如果父类或者接口没有异常抛出时,子类覆盖出现异常,只能try不能抛。
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
- JAVA异常学习笔记
- java学习笔记---异常
- JAVA学习笔记-异常
- Java学习笔记-异常
- 学习笔记-JAVA-异常
- Java异常学习笔记
- java异常学习笔记
- Java学习笔记-异常
- Java 学习笔记 异常
- Java异常学习笔记
- Java学习笔记-异常
- Java异常学习笔记
- Java学习笔记-异常
- Java异常学习笔记
- java学习笔记--异常
- java 异常处理学习笔记
- java学习笔记(七)----异常
- java学习笔记 异常处理
- 备查常用bcb函数(文件名/字符串/日期)
- Eclipse常用的快捷键
- HDU 4585 Shaolin
- C++多线程求数组和
- 代理模式(Proxy)——跟着cc学设计系列
- Java学习笔记-异常
- 云平台--沉淀:ViewData 和ViewBag
- 小米3 打开USB调试设置方法。
- HDU 5174 Ferries Wheel (暴力小模拟)
- 在线支付一定需要支付宝吗?
- POJ 2256 Artificial Intelligence?
- 批量修改oracle 用户的表空间
- Palindrome Number
- 管理中的笑话,笑话中的管理(犹太人的智慧)