Java面向对象 异常

·异常的体系
Throwable
Error
·通常出现重大问题如:运行的类不存在或者内存溢出等。
·不编写针对代码对其处理
Exception
·在运行时运行出现的一起情况,可以通过try catch finally
Exception和Error的子类名都是以父类名作为后缀。

class Demo
			{
				int div(int a, int b)
				{
					return a / b;
				}
			}
				class  ExceptionDemo
			{
					public static void main(string[]args)
					{
						Demo d = new Demo();
						try
						{
							int x = d.div(4, 0);
							System.out.printin("x=" + x);
						}
						catch (Exception e)//Exception e=new  ArithmeticException ();
						{
							system.out.print\n("除零啦");
							System.out.println(e.getMessage ());///by zero;
							system.out.printin(e.to String());//异常名称:异常信息。
							e.printStackTrace ();//异常名称,异常信息,异常出现的位置。I
								// 其实jvm默认的异常处理机制,就是在调用 printStackrrace 方法,打印异常的堆栈的跟踪信息。
						}
						system.out.peintln("over");
					}

2,异常的处理
java提供了特有的语句进行处理。
try

{
需要被检测的代码:
}
catch(异常类变量)
{
处理异常的代码;(处理方式)
}

{
finally
一定会执行的语句;
}

序号    异常名称    异常描述
1    ClassCastException    类型转换异常类
2    ArrayStoreException    数组中包含不兼容的值抛出的异常
3    SQLException    操作数据库异常类
4    NoSuchFieldException    字段未找到异常
5    NoSuchMethodException    方法未找到抛出的异常
6    NumberFormatException    字符串转换为数字抛出的异常
7    StringIndexOutOfBoundsException    字符串索引超出范围抛出的异常
8    IllegalAccessException    不允许访问某类异常
9    InstantiationException    
 当应用程序试图使用Class类中的newInstance()方法创建

一个类的实例,而指定的类对象无法被实例化时,抛出该异常

RuntimeException子类:    

序号    异常名称    异常描述
1    java.lang.ArrayIndexOutOfBoundsException    数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。
2    java.lang.ArithmeticException     算术条件异常。譬如:整数除零等。
3    java.lang.SecurityException     安全性异常
4    java.lang.IllegalArgumentException    非法参数异常
5    java.lang.ArrayStoreException     数组中包含不兼容的值抛出的异常 
6    java.lang.NegativeArraySizeException    数组长度为负异常 
7    java.lang.NullPointerException    空指针异常。当应用试图在要求使用对象的地方使用了null时,抛出该异常。譬如:调用null对象的实例方法、访问null对象的属性、计算null对象的长度、使用throw语句抛出null等等。
      2.IOException

序号    异常名称    异常描述
1    IOException    操作输入流和输出流时可能出现的异常
2    EOFException    文件已结束异常
3    FileNotFoundException    文件未找到异常
 

异常:
是什么?是对问题的描述,将问题进行对象的封装。
异常体系:
Throwable--Ezror
l--Exception
I-- RuntimeExceptio

异常体系的特点:异常体系中的所有类以及建立的对象都具备可抛性。
也就是说可以被throw和throws关键字所操作,
只有异常体系具备这个特点。
throw和throws的用法
throw定义在函数内,用于抛出异常对象。
throws定义在函数上,用于抛出异常类,可以抛出多个用逗号隔开,
当函数内容有throw抛出异常对象,并未进行try处理,必须要在函数上声明,都在编译失败。
注意, RuntimeException 除外。也就说,函数内如果抛出的 RuntimePxcpetion 异常,函数上可以不用声明。
如果函数声明了异常,调用者需要进行处理。处理方法可以throws可以try。
异常有两种:
编译时被检测异常
该异常在编译时,如果没有处理(没有抛也没有txy),编译失败。
该异常被标识,代表这可以被处理。
运行时异常(编译时不检测)


在编译时,不需要处理,编译器不检查。
该异常的发生,建议不处理,让程序停止。需要对代码进行修正。
异常处理语句:
try
{
需要被检测的代码;
}
catch()
{
处理异常的代码;
}
finally

{
一定会执行的代码;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值