第十周预习报告:异常处理机制
说出两个我们在使用软件、APP时遇到的错误。这些错误可能是什么类型的错误?你是怎么解决这类错误呢(重启、查看日志...)?
- ①程序运行时突然卡死。可能是系统错误。此时选择打开任务管理器强制结束程序,或者等待自动结束运行。
- ②如果程序比较简单,大量输入数据进去有可能造成卡顿等。这是因为内存分配不当造成的。
说出两个你在编写Java程序时最常遇到的错误。并判定这些错误是什么类型的错误(编译错误、运行时错误)。你认为哪种类型的错误更好解决呢?
- ①少了一个},;符号,这是编译错误。
- ②或者数据的类型不正确。运行时错误。
编译错误更好解决,因为编译器会具体的告诉你错误原因,便于改正,还有quickfix功能。
查询JDK文档,说说如下代码哪行抛出了什么类型的异常?为什么该段程序明明可能产生错误,但是不写try...catch,也可编译通过。
public static void main(String[] args) { int[] x = new int[3]; Scanner inputScan = new Scanner(System.in); for(int i = 0; i < x.length;){ System.out.println("Please input the "+i+" integer:"); String inputInt = inputScan.nextLine(); x[i] = Integer.parseInt(inputInt); //注意这里! i++; } System.out.println(Arrays.toString(x)); }
假如输入了不是integer类型的数据(比如String类型的),会出现NumberFormatException。
因为这是Unchecked Exception类型的错误,只要预防录入数据不存在问题就不会错误,无需Try catch增加负担。
将如下代码中NumberFormatException改成Exception可以吗?
String x = "abc"; try { int a = Integer.parseInt(x); System.out.println(a); } catch (NumberFormatException e) { e.printStackTrace(); }
可以
因为NumberFormatException是Exception的一个子类,但是没有必要使用,因为会降低代码的可读性。
查询JDK文档,说说如下代码哪里抛出了什么异常?该异常意味着吗什么?需要捕获吗?为什么?
String fileName = "abc"; FileReader fileReader = new FileReader(fileName);
没有用try catch包围。FileNotFoundException,即文件找不到异常,这是一种Checked Exception类型的错误,必须放入try catch进行捕获。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具