重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
异常产生和提交的过程
创新互联建站-专业网站定制、快速模板网站建设、高性价比沈河网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式沈河网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖沈河地区。费用合理售后完善,十多年实体公司更值得信赖。2.捕获得到异常对象后,寻找处理这一异常的方法,运行时把当前异常交给该方法进行处理
3.异常处理的一般步骤①异常抛出➡②异常捕获→③异常处理
放可能引发异常的代码,试试它所包含的代码段中是否会发生异常
2.catch对应的异常类型和一个代码块,表明该catch块用于处理这种类型的代码块,可以有多个catch。当有异常时,抓住并进行相应的处理,使程序不受异常的影响而继续执行下去
3.throw抛出一个实际的异常,抛出一个具体的异常对象,在程序中明确引发异常
4.throws如果一个方法可以引发异常,它本身并不处理该异常,那么它必须将该异常抛给调用它的方法。用于声明该方法可能抛出的异常。
5.finally无论是否发生异常都要执行的代码
catch2.try-catch-catch每个try代码块可以伴随一条或多条catch语句,用于处理try代码块中生成的异常事件。
需要一个形式参数指明它能够捕获地异常类型,必须是Throwable的子类。
不会产生异常情况,执行try{}public void method(){
try{
// 代码段 不会产生异常 √
}catch(异常类型 ex){
// 处理异常的代码段
}
}
会产生异常情况,try{}有异常,与catch(匹配异常类型),执行catch{}public void method(){
try{
// 代码段1
// 产生异常的代码段2 与catch类型匹配后进入catch{}
// 代码段3
}catch(异常类型 ex){ // 如果类型不匹配则程序中断
// 处理异常的代码段4 √
}
// 代码段5
}
3.try-finally一段代码可能引发多种类型的异常。引发异常时,按顺序查看每条catch语句,执行第一条类型匹配的catch{},后面的catch{}将被忽略。
安排catch语句的顺序时,先安排子类,再安排父类。
public void method(){
try{
// 代码段
}catch(异常类型1 ex){
// 处理异常的代码段
}catch(异常类型1 ex){
// 处理异常的代码段
}catch(异常类型1 ex){
// 处理异常的代码段
}
// 代码段
}
4.try-catch...catch-finally没有catch子块,发生异常时无法在当前程序中捕获,由系统处理。
public int method(){
try{
return 1;
}
finally{
// 放在任何情况下都必须执行的代码
return 0;
}
}
当程序使用了外界资源,必须将释放资源的代码写入finally块
throw语句try{
// 无异常时跳过catch{},执行完执行finally{}
// 有异常时与catch{}匹配,跳过try{}直接执行匹配的catch{}
}
catch(异常类型1 ex){
// 类型匹配时 处理异常
// 类型不匹配时 进行下一条catch块匹配
}
catch(异常处理2 ex){
//类型匹配时 处理异常
//类型依然不匹配时 无finally则中断程序 有finally时执行finally{}
}
finally{
// 有无异常都要执行
// catch都不匹配时也要执行
}
throws子句用来明确地抛出一个异常。
if(异常条件1成立)
throw new 异常1();
if(异常条件2成立)
throw new 异常2();
...
// 抛出异常首先要生成异常对象
// 生成异常对象通过throw语句实现:
IOException e=new IOException();
throw e;
三种嵌套用来声明一个异常。
returnType methodName([paramlist]) throws exceptionList{...}
返回类型 方法名(参数列表) throws 异常列表{...}
try
{
try{ }
catch(Exception E1){ }
}
catch(Exception E2){ }
try{ }
catch(Exception E1)
{
try{ }
catch(Exception E2){ }
}
try{ }
catch(Exception E2){ }
finally
{
try{ }
catch(Exception E1){ }
finally{ }
}
要用try-catch-finally捕获,但必须由用户自己抛出(throw new MyException)。自定义异常类必须使Throw的直接子类或间接子类。(最好定义为Exception的子类。)
class 自定义异常1 extends Exception{
自定义异常1(String str)
super(str);
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧