黑马程序员 JAVA学习笔记 ——— 异常

android培训java培训、期待与您交流! 

异常是什么? 是对问题的描述。将问题进行对象的封装。
也就是说将问题出在哪里告诉编写者的一样东西。
异常类的体系:

java.lang.Throwable:
Throwable:可抛出的。 
    |--Error:错误,一般情况下,不编写针对性的代码进行处理,通常是jvm发生的,需要对程序进行修正。
    |--Exception:异常,可以有针对性的处理方式
异常体系的特点:异常体系中的所有类以及建立的对象都具备可抛性
                            也就是说可以被throw和throws关键字所操作
                            只有异常体系有这个特点
throw 和 throws的区别
throw定义在函数内, 用于抛出异常对象。
throws定义在函数上,用于抛出异常类,可以抛出多个用逗号隔开。
注意:
当函数内容有throw抛出异常对象,并未进行try处理。必须要在函数上声明,都在编译时注意,RuntimeException除外。
也就是说,函数内如果抛出的RuntimeException异常函数上可以不用申明。
如果函数声明了异常,调用者需要进行处理。处理方法可以throws可以try
异常有两种:
 1.编译时被检测异常
       该异常在编译时,如果没在处理(没有抛出也没有try),编译失败
       该异常被标识,代表这可以被处理
 2.运行时异常(编译时不检测)
       在编译时,不需要处理,编译器不检查
       该异常的发生,建议不处理,让程序停止。需要对代码进行修正 
用法:      处理方式有两种:1、捕捉;2、抛出。
对于捕捉:java有针对性的语句块进行处理。
try {
需要被检测的代码;
}
catch(异常类 变量名){
异常处理代码;
}
fianlly{
一定会执行的代码;
}  
三个格式: (1)try{ } catch{ } 
                  (2)  try{ } finally{ }
                  (3)  try{} catch{} finally{ }  
注意 finally 中定义的通常是关闭资源的代码。 应为资源必须得到释放。
        finally只有一种情况下不执行。当执行到System.exit(0) finally 不执行。
        一个try可以对应多个catch。 

自定义异常: 
           定义继承Exception或者RuntimeException
           1.为了让该自定义类具备可抛性
           2.让该类具备操作异常的方法
           当要定义自定义异常的信息时,可以使用父类已经定义好的功能
           异常信息传递给父类的构造函数 
 自定义异常:按照java的面向对象思想,将程序中出现的特有问题进行封装 。
例:写了一个乘数是负数就报错的程序
class  cuo  extends  RuntimeException //
{ private  int  c;
     cuo( String  msg, int  b)
    { super( msg); c = b;} //
int  getb()
{ return  c;}
}
class  cheng //
{ int  cheng( int  a, int  b)
if( b < 0throw  new  cuo( "", b);
     return  a * b;}
    }
public  class  cs03 {
public  static  void  main( String []  args)
{ int  a  =  0;
cheng  c = new  cheng();
try
{ a = c. cheng( 4, -3);}
catch( cuo  e)
{ System. out. println( e. toString() + "  " + e. getb());} // 
System. out. println( a);//为了查看a =c.cheng( 4, -3);//有没有成功赋值
}
}
 

异常的好处:
异常把正常流程代码和问题代码分离开,便于阅读。
程序出错的时候可以知道大致的问题 便于修改和分析。 

android培训java培训、期待与您交流!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值