【133天】尚学堂高淇Java300集视频精华笔记(71-72)
第71集:常用类/file类/打印目录树状结构/递归算法
课堂代码
package com.test071;import java.io.File;public class Test071 {public static void main(String[] args){/*** 1. File文件类的常见构造器,常见方法使用* 2. 递归:* 概念:在java代码中出现自己调用自己的情况,可称之为递归* 组成:递归体、递归头(用来做判断)* 注意:若无递归头,递归将会是死循环。* */File f = new File("/Users/wangtao/Desktop/AAA");printFile(f,0);}static void printFile(File file, int level){for(int i = 0;i < level;i++){//是第几级目录,就打印几个“-”System.out.print("-");}System.out.println(file.getName());if(file.isDirectory()){File[] files = file.listFiles();for(File temp:files){printFile(temp,level+1);}}}}
第72集:异常机制ExceptionThrowableError的概念
导引问题
实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据可能是空的等。我们的程序再跑着,内存或硬盘可能满了。等等。软件程序在运行过程中,非常可能遇到刚刚提到的这些异常问题,我们叫异常,英文是:Exception,意思是例外。这些,例外情况,或者叫异常,怎么让我们写的程序做出合理的处理。而不至于程序崩溃。
常见的错误:
用户输入错误
设备错误
硬件问题,比如打印机关掉、服务器问题
物理限制,磁盘满了。
代码限制,数组下标越界等
设计良好的程序应该在异常发生时提供处理这些错误的方法,使得程序不会因为异常的发生而终断或产生不可预见的结果。
异常处理机制的价值
如果没有异常处理机制,那么:
//将d:/a.txt复制到e:/a.txtif("d:/a.txt"这个文件存在){
if(e盘的空间大于a.txt文件长度){
if(文件复制一半IO流断掉){
停止copy,输出:IO流出问题!
}else{
copyFile("d:/a.txt","e:/a.txt");
}
}else{
输出:e盘空间不够存放a.txt!
}
}else{
输出:a.txt不存在!
}
两个坏处:
逻辑代码和错误处理代码放一起!
程序员本身需要考虑的例外情况较复杂,对程序员本身要求较高!
异常(Exception)的概念
异常机制就是当程序出现错误,程序如何安全退出的机制。
JAVA如何处理异常?
第一个异常示例和解析:
public static void main(String[] args) {int i = 1/0;gggggg
}Exception in thread "main" java.lang.ArithmeticException: / by zero
at chuji.BubbleSort.main(BubbleSort.java:11)
Java异常处理过程
JAVA是采用面向对象的方式来处理异常的。处理过程:
抛出异常:在执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象提交给JRE。
捕获异常:JRE得到该异常后,寻找相应的代码来处理该异常。JRE在方法的调用栈中查找,从生成异常的方法开始回溯,直到找到相应的异常处理代码为止。
【133天】尚学堂高淇Java300集视频精华笔记(71-72)相关推荐
- 【138天】尚学堂高淇Java300集视频精华笔记(84)
第84集:太阳系模型/基本类的封装/Star类的建立 本集知识点 将对象尽可能的抽象,可以有效减少代码量,比如此例中的Star类 package com.test084_087_solar;impor ...
- 【135天】尚学堂高淇Java300集视频精华笔记(74-76)
第74-75集:异常机制.trycatchfinallyreturn执行顺序.捕获异常.声明异常throw.方法重写中异常的处理.手动抛出异常 异常的处理办法一:捕获异常 try try语句指定了一段 ...
- 【131天】尚学堂高淇Java300集视频精华笔记(65-66)
第65集:常用类Date类的使用JDk源码分析 Date时间类(java.util.Date) 在标准Java类库中包含一个Date类.它的对象表示一个特定的瞬间,精确到毫秒. Date()分配一个D ...
- 【147天】尚学堂高淇Java300集视频精华笔记(108-109)
第108集:容器equals和hashcodeJDK源代码分析 本集知识点 Java中规定,若两个对象equals比较后内容相等(为true),则hashCode必须相等,反之不然.[原因见内存分析图 ...
- 【153天】尚学堂高淇Java300集视频精华笔记(122-123)
叨叨两句(2017.7.8) 我现在发现我太适合当程序员了,稍微懂点知识后想法就一堆一堆的,哈哈. 今天敲下面这个冒泡排序时感觉太特么好了.原来学编程最快乐的事情就是懂了一些知识后,把它变成可以在电脑 ...
- 【160天】尚学堂高琪Java300集视频精华笔记(129)
明天开始,专栏增加一个黑马程序员的课程更新. 其它容器收尾讲解 队列Queue与Deque(单向队列与双向队列) Enumeration(较老的接口,JDK1.5前使用频繁,维护旧系统会用到) Has ...
- 尚学堂 高琪JAVA300集第十一章作业 编程题答案
本人 JAVA初学者 在寻找这一方面的答案时没有看见 ,本着分享的精神 自己做了出来 也就传上来了 水平有限 存在有错的地方或者改进的方法 ,望大佬们可以提出 万分感谢. 1.1. 设计一个多线程的程 ...
- 【JavaSE】高淇300集第一季笔记
------------------------------------------------------1.如何学习---------------------------------------- ...
- python 递归函数_Python尚学堂高淇|P82P86面向对象和面向过程的区别LEGB规则nonlocal_global递归函数阶乘计算案例...
P82-递归函数-阶乘计算案例 #使用递归函数计算阶乘def factorial(n):if n==1:return 1else:return n*factorial(n-1)result=facto ...
最新文章
- PageSpeed Insights
- 0-1背包问题 动态规划java_C#使用动态规划解决0-1背包问题实例分析
- 【Python学习系列十一】Python实现决策树实现C4.5(信息增益率)
- c语言uppercase恢复小写,C语言转换字符串为大写和小写
- JS ES6中export和import详解
- Windows驱动—Windows应用程序和Windows驱动通信编程
- Swift的一些问题
- Q125:PBRT-V3,对比VolPathIntegrator::Li()和EstimateDirect()判断Medium的方式
- sqlite如何与mysql连接数据库连接_c#中怎么连接到sqlite数据库?
- Linux下PHP+MySQL+CoreSeek中文检索引擎配置
- html等宽字体汉字,等宽字体(Monospaced Font)
- 2022程序员都需要知道的 6 个挺火的开源项目
- java简历个人技术描述_简历个人描述
- 【win7安装composer错误】:The quot;https://getcomposer.org/download/1.6.2/composer.phar.sigquot; file cou
- Word/WPS 文本转换成表格
- 教培机构如何搭建在线教育网校平台
- 计算机网络——各层次网络互联设备
- 170915 逆向-问鼎杯题库(小磊生病了)
- 设计模式-优惠券-策略模式
- 吴雪筠校友报告会----职场仪表、心态、自强之道
热门文章
- Science公布:全世界最前沿的125个科学问题
- 腾讯张正友:攻克可进化机器人,6个研究趋势与7大技术突破点
- 英特尔详解5G将如何助力VR的未来发展
- 高精度定位!“天地一体”基础设施助中国北斗在商用领域“弯道超车”
- AI指数评论:提防“路灯谬误”,开启全球多方对话
- 硬件巨头正在崛起,中国独占鳌头
- 漫画:Object 类很大,你忍一下(完结篇)
- 时间管理大师!一程序员同时给谷歌和 Facebook 打工??
- 如何用纯 CSS 创作一只愤怒小鸟中的黑炮
- Jenkins进阶系列之——01使用email-ext替换Jenkins的默认邮件通知