黑马程序员--02--异常处理

黑马程序员--02--异常处理
                                                         -------  android培训 java培训 、期待与您交流! ----------
 
/*
图片 
异常:
就是程序在运行时遇到不正常的情况

异常的由来:
问题是生活中的一种具体事物,java根据现实中的问题抽象成一种对象,专门描述java中所遇到的不正常现象也就是异常。

java中的问题分为两种:
一种是非严重的问题,一种是严重的问题。非严重的问题java用Exception描述,严重的问题java用Error描述。
对于Error一般不需要编写专门的代码进行处理。
对于Exception我们可以使用针对性的代码进行处理。
Error和Exception都具有一些共同的特征:比如不正常情况的信息,或引发的原因。

在编写程序的时候通过throws在函数上标识该函数可能会出现异常,如果需要声明多个可能出现的异常可以用","隔开,在函数上标识异常便于提高安全性。
当在函数内部使用了throw关键字抛出异常时必须对其进行处理,要么直接用throws在函数上声明,要么直接用try处理。
throws后面跟的是异常类。
throw后面跟的是异常对象。

Exception中特别的一个异常:RuntimeException
1、如果在函数内抛出RuntimeException异常,在函数上不需要throws编译一样通过。
2、如果在函数上声明异常,调用者也可以不进行处理,编译一样通过。
3、之所以不用在函数上声明是因为不需要调用者处理,当异常发生后希望程序停止,因为在程序中出现了无法运算的情况,需要重新修正代码才能继续。

处理异常:
1、在声明异常时要声明更为具体的异常,这样方便于处理。
2、对方法声明几个异常就对应几个catch块。如果多个cacth块中出现继承关系就要把父类异常向下放,否则子类异常不可能会读取到。
3、进行catch处理异常时不要简单的用printStackTrace()进行处理,一定要有具体的处理方式。
自定义异常:
1、必须继承Exception,原因是异常对象或者异常类都会被抛出,他们都具有可抛性,这是Throwable体系中的独有特点。
2、只有这个体系中的类和对象才可以被throws或throw操作。
3、自定义异常时如果遇到异常程序就无法继续进行运算,这样就要继承RuntimeException类。
4、自定义异常时可以将信息使用super关键字传递给父类的构造函数使用父类提供的方法,而不用重写方法。
异常分两种:
1、运行时异常。(RuntimeException)
该异常在编译时不需要被处理,编译器不检查。
该异常的发生不需要处理,需要程序停止,再重新修正代码。
2、编译时异常。
该异常需要进行处理,没有处理就会编译失败。
该异常被标识,标识可以处理。
字父类继承时覆盖方法的抛异常问题:
  1、例如有A<B<C("<"为继承)三个异常,父类中抛了B异常,子类中只能抛C或者B异常,而不能抛A异常。
  2、如果父类方法抛出多个异常,子类方法覆盖父类方法时只能抛父类异常的子集。
  3、如果父类或者接口的方法中没有异常抛出,子类或者实现接口时也不能抛出异常。如果子类方法发生了异常只能进行try处理,绝对不能抛。
 
 异常的优点:
  1、将问题进行封装。
  2、将正常的代码与异常的代码相分离,方便于阅读。
*/

//异常演示

class minusNumException extends Exception//自定义异常
{
minusNumException(String msg)
{
super(msg); //把信息传递给父类的构造函数
}
}
class SuanFa
{
public int divi(int a, int b)throws ArithmeticException,minusNumException
{
if(b<0)
{
throw new minusNumException("除数不能为负数!");
}
return a/b;
}
}
class ExceptionDemo
{
public static void main(String[] args) 
{
SuanFa a = new SuanFa();
try
{
int x = a.divi(4,-2);
System.out.println(x);
}
catch(Exception e)
{
System.out.println(e.toString());
}
System.out.println("Over!");
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值