A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

何为异常处理?

异常就是程序在运行过程中产生的问题,并且这种问题可以用代码去解决,我们解决的过程就叫异常处理
java内部对各种异常作了定义,我们在使用过程中,jvm发现哪里出现了异常,就会在内部创建这个对象,将这个对象的内容打印在控制台上
我们也可以通过继承对去自定义异常 名称有规范,:自已定义了一个名称的后面加Exception.如 NumException .SumException
,异常有两种:运行时异常 和编译时异常
所以处理方式也不一样.


异常处理有什么用?
可以让程序更合理,完善,把一些问题通过代码处理了,避免以后出现bug,

如何进行异常处理?
在一个方法的实现部分,如果有可能出现异常,那么可以直接在程序处理了
如果不处理那么就要抛出,抛出后,分两种情况:
1,如果是运行时异常,在其所在方法上可以不抛出声名,也可以抛,
2,如果是编译时异常,那么方法上必须抛出异常声名.
然后在调用这个函数的方法内要么处理,不处理,同样,抛出,只要没处理就一直抛,直到当主函数抛了后,直接抛回给jvm了,然后over.
处理格式:
........方法名() throws
{
  try
  {
  可能会产生异常的代码(一旦这句产生了异常,下面的语句便无法执行)
  这里可以加其它的语句也可以不加,也可以直接抛异常
  例如直接抛个异常:throw new Exception("run异常");这个异常可以不放在try里,而放在方法里,但不管放哪里,在一个{}内,其只可以放在最下面一行,也就是下面不可以放语句,因为肯定执行不到,java默认有问题,编译无法通过..
  }
  catch(异常类名1 e)catch用来接收异常对象并处理.
  {
  处理方式.....
  }
  catch(异常类名2 e)
  catch 可以有多个,但是:如果里面的异常名存在继承关系,那么前面catch里的异常类只能是后面catch的子类.
  {
  处理方式代码.....
  }
  
  finally可有可没有,一般用于切断数据联接,用来结束资源暂用.
  {
  只要在try前面没有被被其它异常所终止,那么这里的语句一定会执行.
  }
  
}
什么时候需要异常处理?
1当程序在调用方法时,而这个方法可能会抛出异常时,这个时候则必须做异常处理
要么try做处理,要么也在方法上抛出.
2当一段代码可能出现异常时,也可以做异常处理.

异常处理有什么特点?
异常要么try,要么抛,try还可以在方法上抛异常
多个catch时,如果出现了子父类,那么一定要注意,在上面的catch里的异常不能是下面catch的父类.
方法里抛了非运行时异常,那么方法上一定要抛异常
一旦方法里抛出了一个异常,而又没用try catch去处理,那么其下面的代码都不会运行.
只要存在方法调用,就可能会用到异常处理.不一定在主方法中.不一定在一个类中.
在子类中:
1,如果父类抛了异常,那么子类可以不抛异常,也可以不抛,
2但是如果子类要抛,只能抛与父类一样的,或其子集
3,如果父类中方法没有做异常处理,子类重定的方法也不能定义.
4如果子类方法中出现了异常,那么一定要处理,不能抛!
throws 后可以抛出多个异常

1 个回复

正序浏览
不错啊,很好的总结!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马