




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.实验8 异常处理、log4j、反射与内部类一、 实验目的、理解异常的概念,熟悉异常的分类、Exception类、Java的异常处理机制及声明抛出异常、自定义异常的方法;、熟悉log4j的基本用法;、理解反射的概念,熟悉反射中常用类的基本用法;、理解内部类的概念,熟悉成员内部类和局部内部类的基本用法。二、 实验步骤1、(基础题)下图是一程序运行的结果,请根据程序代码和注释填空,并回答问题:程序代码:/打印该类公有方法的返回类型、名称和参数列表import java.lang.reflect.Method;class MyClass6 public void getData(int a, float b, String s) public void putData(int a, int b) public class ClassMethodExample public static void main(String args) MyClass6 myObj = new MyClass6();displayMethods(myObj);static void displayMethods(Object obj) int count = 0;Class c1 = obj.getClass();Method stringMethods = c1.getMethods();while (count stringMethods.length) String methodName = stringMethodscount.getName();Class returnType = stringMethodscount.getReturnType();System.out.print( returnType + +methodName + ();Class parameterTypes = stringMethodscount.getParameterTypes();for (int i = 0; i MAX_V)/抛出MotorException异常实例,提示”发动机将被毁坏!”_throw new MotorException(发动机将被毁坏!)_; elsespeed+=inc;public class Lab6_5 public static Car car;public static void main(String args)car= new Car();_try_/可能引发异常的块for(;)car.accelerate(0.5f);_catch_ (MotorException me)/捕获、处理异常System.out.println(Mechanical problem: +me);程序运行结果:Mechanical problem: pa.MotorException: 发动机将被毁坏!5、(基础题)先加载log4j的jar包,再分析、运行下列程序,休会log4j的基本用法,并回答相关问题。import java.util.InputMismatchException;import java.util.Scanner;import org.apache.log4j.Logger;public class Test private static Logger logger=Logger.getLogger(Test.class.getName();public static void main(String args) try Scanner in = new Scanner(System.in);System.out.print(请输入被除数:);int num1 = in.nextInt();logger.debug(输入被除数: + num1);System.out.print(请输入除数:);int num2 = in.nextInt();logger.debug(输入除数: + num2);System.out.println(String.format(%d / %d = %d, num1, num2, num1/ num2);logger.debug(输出运算结果: + String.format(%d / %d = %d,num1, num2, num1 / num2); catch (InputMismatchException e) logger.error(被除数和除数必须是整数, e); catch (ArithmeticException e) logger.error(e.getMessage(); catch (Exception e) logger.error(e.getMessage(); finally System.out.println(欢迎使用本程序!);# u8BBEu7F6ELoggeru8F93u51FAu7EA7u522Bu548Cu8F93u51FAu76EEu7684u5730 #log4j.rootLogger=debug,A,B# u628Au65E5u5FD7u4FE1u606Fu8F93u51FAu5230u63A7u5236u53F0 #log4j.appender.A=org.apache.log4j.ConsoleAppenderlog4j.appender.A.Target=System.errlog4j.appender.A.layout=org.apache.log4j.SimpleLayout# u628Au65E5u5FD7u4FE1u606Fu8F93u51FAu5230u6587u4EF6uFF1Ajbit.log #log4j.appender.B=org.apache.log4j.FileAppenderlog4j.appender.B.File=jbit.loglog4j.appender.B.layout=org.apache.log4j.PatternLayoutlog4j.appender.B.layout.ConversionPattern=%dYYYY-MM-DD HH:mm:ss %l %F %p %m%n问题:1) log4j将信息分为多少个级别?五大级别2) 怎样设置才能将错误信息在屏幕上显示?配置perties 把日志信息输出到控制台)怎样设置才能将错误信息在文件中输出?配置perties把日志信息输出到文件6、(提高题)模拟银行ATM完成以下功能:(1)查询余额 (2)取款 (3)存款 (4)退出在控制台上模拟上述菜单,系统根据用户所选择的数字进行相应的功能。如果所选数字不是以上1-4之间通知重新输入。当用户取款的金额超出帐户余额抛出自定义异常,通知重新输入金额。当用户选择4时整个系统退出。运行效果如下所示:(主类名字必须改,否则运行出错)1)显示余额 2)取款 3)存款 4)退出Press No.:1帐户余额为:1000.01)显示余额 2)取款 3)存款 4)退出Press No.:2请输入取款金额1001)显示余额 2)取款 3)存款 4)退出Press No.:1帐户余额为:900.01)显示余额 2)取款 3)存款 4)退出Press No.:2请输入取款金额1200余额不足1)显示余额 2)取款 3)存款 4)退出Press No.:4系统退出!请认真阅读下面的代码并回答如下问题:(1)自定义异常类BankException 继承了什么类?能不能换成其他的类?为什么?(2)类Bank的 menu()方法的功能是什么?menu()方法里调用了哪些方法?(3)在取款方法deposit()里声明了哪些异常?当余额不足时,又重新抛出了哪个异常?import java.io.*;/主程序:public class MyException public static void main(String args) Bank my = new Bank(1000.0);/ 菜单while (true) Bank.menu(my);/定义自定义异常类.抛出该异常条件:取款金额超出帐户余额class BankException extends Exception void disp() System.out.println(余额不足);class Bank double account;/ 余额Bank(double dl) account = dl;static void menu(Bank obj) System.out.println(1)显示余额 2)取款 3)存款 4)退出);System.out.print(Press No.:);switch (getChoice() case 1:obj.disp();/ 余额显示break;case 2:try obj.deposit();/ 取款 catch (BankException e) e.disp(); catch (IOException e) e.printStackTrace();break;case 3:obj.saving();/ 存款break;case 4:System.out.println(系统退出!);System.exit(0);default:System.out.println(重新选择!);static int getChoice() / 选择功能数字int choice = 0;try BufferedReader br = new BufferedReader(new InputStreamReader(System.in);choice = Integer.parseInt(br.readLine(); catch (IOException e) e.printStackTrace();return choice;/ 存款void saving() double trans_account;/ 输入存款金额System.out.print(请输入存款金额);try BufferedReader br = new BufferedReader(new InputStreamReader(System.in);trans_account = Double.parseDouble(br.readLine();account += trans_account; catch (IOException e) e.printStackTrace();/ 取款void deposit() throws BankException, IOException double trans_account;System.out.print(请输入取款金额);try BufferedReader br = new BufferedReader(new InputStreamReader(System.in);trans_account = Double.parseDouble(br.readLine();/ 判断余额if (account trans_account) account -= trans_account; elsethrow new BankException();/ 抛出异常 catch (IOException e) e.printStackTrace();/ 打印余额void disp() System.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 包头市中石化2025秋招面试半结构化模拟题及答案油品分析质检岗
- 国家能源庆阳市2025秋招面试专业追问及参考财务审计岗位
- 中卫市中石油2025秋招面试半结构化模拟题及答案油气储运与管道岗
- 2025年高一生物必修一试题及答案
- 国家能源商丘市2025秋招写作案例分析万能模板可套用
- 莆田市中石化2025秋招网申填写模板含开放题范文
- 中国广电金华市2025秋招供应链采购类专业追问清单及参考回答
- 玉林市中石油2025秋招面试半结构化模拟题及答案法律与合规岗
- 温州市中石油2025秋招笔试模拟题含答案安全环保与HSE岗
- 广州市中储粮2025秋招写作案例分析万能模板直接套用
- 2025年中国铁建集团招聘面试模拟题及答案详解
- 2007年劳动合同范本
- (2025年标准)买月饼协议书
- 正确对待孩子的逆反心理
- 苜蓿种植培训课件
- 装置性违章培训
- 设备泄漏挥发性有机物排放控制技术规范
- 粉体团聚现象控制-洞察及研究
- 《冠心病合并2型糖尿病患者的血糖管理专家共识(2024版)》解读
- 医疗AI发展中的伦理问题及应对策略
- 车工多选考试题及答案
评论
0/150
提交评论