Java的异常处理-创新互联

异常处理机制 1.抛弃异常

异常产生和提交的过程

创新互联建站-专业网站定制、快速模板网站建设、高性价比沈河网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式沈河网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖沈河地区。费用合理售后完善,十多年实体公司更值得信赖。2.捕获

得到异常对象后,寻找处理这一异常的方法,运行时把当前异常交给该方法进行处理

3.异常处理的一般步骤

①异常抛出➡②异常捕获→③异常处理


Java异常处理的5个关键字 1.try

放可能引发异常的代码,试试它所包含的代码段中是否会发生异常

2.catch

对应的异常类型和一个代码块,表明该catch块用于处理这种类型的代码块,可以有多个catch。当有异常时,抓住并进行相应的处理,使程序不受异常的影响而继续执行下去

3.throw

抛出一个实际的异常,抛出一个具体的异常对象,在程序中明确引发异常

4.throws

如果一个方法可以引发异常,它本身并不处理该异常,那么它必须将该异常抛给调用它的方法。用于声明该方法可能抛出的异常。

5.finally

无论是否发生异常都要执行的代码


异常处理语句 1.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

}

2.try-catch-catch

一段代码可能引发多种类型的异常。引发异常时,按顺序查看每条catch语句,执行第一条类型匹配的catch{},后面的catch{}将被忽略。

安排catch语句的顺序时,先安排子类,再安排父类。

public void method(){

  try{

  // 代码段

}catch(异常类型1 ex){

  // 处理异常的代码段

}catch(异常类型1 ex){

  // 处理异常的代码段

}catch(异常类型1 ex){

  // 处理异常的代码段

}

  // 代码段

}

3.try-finally

没有catch子块,发生异常时无法在当前程序中捕获,由系统处理。

public int method(){

  try{

  return 1;

}

finally{

  // 放在任何情况下都必须执行的代码

  return 0;

}

}

当程序使用了外界资源,必须将释放资源的代码写入finally块

4.try-catch...catch-finally

try{

  // 无异常时跳过catch{},执行完执行finally{}

  // 有异常时与catch{}匹配,跳过try{}直接执行匹配的catch{}

}

catch(异常类型1 ex){

  // 类型匹配时 处理异常

  // 类型不匹配时 进行下一条catch块匹配

}

catch(异常处理2 ex){

  //类型匹配时 处理异常

  //类型依然不匹配时 无finally则中断程序 有finally时执行finally{}

}

finally{

  // 有无异常都要执行

  // catch都不匹配时也要执行

}

throw语句

用来明确地抛出一个异常。

if(异常条件1成立)

  throw new 异常1();

if(异常条件2成立)

  throw new 异常2();

...

// 抛出异常首先要生成异常对象

// 生成异常对象通过throw语句实现:

IOException e=new IOException();

throw e;

throws子句

用来声明一个异常。

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元起,快前往官网查看详情吧


分享标题:Java的异常处理-创新互联
链接分享:http://myzitong.com/article/peijp.html