深入面向对象程序设计.pptVIP

  • 2
  • 0
  • 约2.84万字
  • 约 73页
  • 2019-11-06 发布于广东
  • 举报
(2)多异常处理 通过一个try块后面定义若干个catch块来实现,每个catch块用来接收和处理一种特定的异常对象。 注意如下问题: (1)catch块中的语句应根据异常的不同执行不同的操作; (2)处理多异常时应注意设计各catch块的排列顺序,一般处理较具体和常见的异常应放在前,可以与多种异常相匹配的应放在后; 否则可能造成它后面的catch块将永远不被使用。 定义与使用异常示例 //捕捉并处理异常 import java.applet.Applet; import java.awt.*; import java.util.*; public class UserException extends Applet { Employee Emp; Label prompt1=new Label(请输入雇员姓名和工资初值: ); Label prompt2=new Label(欲修改工资: ); TextField name,isal,nsal; String msg; //输出信息! public void init() { name=new TextField(5); isal=new TextField(5); nsal=new TextField(5); add(prompt1); add(name); add(isal); add(prompt2); add(nsal); } public void paint(Graphics g) { g.drawString(msg,60,60); } public void CreateEmp(String en,double es) //创建员工,工资不可太低 { try{ Emp=new Employee(en,es); msg=new String(Emp.toString()); } catch(IllegalSalaryException ise) //调用处理工资过低的异常 { msg=new String(ise.toString()); } } public void ChangeSal(double cs) //修改工资,变动幅度不可太大 { try{ Emp.setEmpSalary(cs); msg=new String(Emp.toString()); } catch(IllegalSalaryException ise) //多异常处理,异常1——调用处理工资过低的异常 { msg=new String(ise.toString()); } catch(IllegalSalaryChangeException cse) //异常2——调用工资变动幅度不合理的异常 { msg=new String(Emp.toString()+cse.toString()); } } public boolean action(Event e,Object o) { String en; double es,cs; if(e.target==isal) { en=new String(name.getText()); es=Double.valueOf(isal.getText()).doubleValue(); CreateEmp(en,es); } else if(e.target==nsal) { if(Emp!=null) { cs=Double.valueOf(nsal.getText()).doubleValue(); ChangeSal(cs); } else msg=new String(请先输入雇员姓名工资并创建之); } repaint(); return true; } } // 定义E

文档评论(0)

1亿VIP精品文档

相关文档