try catch // 后续代码需要执行就用trycatch
//后续代码不需要执行就用throw
System.exit(0)//退出java虚拟机
一.异常
(1)就是程序运行过程中,遇到了问题,这就叫异常。
(2)异常的体系
Throwable其实应该分三种
Error
通常出现重大问题如:服务器宕机数据库崩溃等。
不编写针对代码对其处理。
Exception
除了RuntimeException和其所有子类,其他所有的异常类都是在编译的时候必须要处理的
要么try,要么抛
RuntimeException
RuntimeException和其所有的子类,都不会在编译的时候报异常,而是在运行时报异常,这时候我们
就需要回头看看我们的代码是否有问题,比如角标越界,空指针等
并发操作异常。
(3)ThrowableRunnable
A:getMessage():返回此 throwable的详细消息字符串。
class Throwable {
String detailMessage;
Throwable(){}
Throwable(String message) {
this.detailMessage = message;
}
public String getMessage() {
return detailMessage;
}
}
B:toString():获取异常类名和异常信息,返回字符串。重写了object的tostring
C:printStackTrace():获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。
(4)处理异常处理方式:
A:try...catch...finally
格式:
try{
需要检测的代码;
}
catch(异常类 变量) {
异常处理代码;
}
...
finally{
一定会执行的代码;
关流释放资源
}
可以有下面三种搭配形式:
**try...catch(...)
**try...finally
**try...catch(...)...finally
B:抛出 throwsthrow
throws:用于标识函数暴露出的异常。thorws用在函数上,后面跟异常类名(可以由多个,隔开)。
throw:用于抛出异常对象。throw用在函数内,后面跟异常对象。new Exception();
C:到底用谁?
**你能处理,建议处理。try...catch...finally
**你处理不了,抛出。
**在实际开发中,是分层开发,底层代码是能抛出尽量抛出,用日志记录住异常信息,并提供解决方案
D:自定义异常
自定义类继承Exception或者其子类(RuntimeException)
class MyException extends Exception{
MyException(){}
MyException(String message){
super(message); //将信息传递给父类,调用父类封装好的构造方法
}
}
class Student {
public void giveAge(int age) throws MyException {
if(age>40 || age<16) {
//throw new MyExcetpion("建议不学了");
MyExcepiont my = new MyExcetpion("建议不学了");
throw my;
}
else {
System.out.println("可以学习Java");
}
}
}
E:RuntimeException和Exception
区别:RuntimeException就是要你改代码的。你可以不处理。
二.File
1.什么是File类
File类对象可以代表一个路径,此路径可以是文件也可以是文件夹,该类方法可以对这个路径进行各种操作
2.创建对象
给File类构造函数传一个String类型的路径就可以创建对象
路径分为两种:绝对路径,相对路径
绝对路径: 从盘符开始,是一个固定的路径
相对路径: 不从盘符开始,相对于某个位置.在Eclipse中的Java工程如果使用相对路径,那么就相对于工程根目录.cmd则相对应于当前目录.
3.常用方法
booleanexists() //判断是否存在
booleanisAbsolute(); //是否是绝对路径
booleanisDirectory(); //是否是文件夹
booleanisFile(); //是否是文件
booleanisHidden(); //是否是隐藏
getAbsolutePath(); //获取绝对路径
getFreeSpace(); // 获取当前盘符剩余空间
getTotalSpace(); //获取当前盘符总空间
getUsableSpace(); //获取当前盘符可用空间
getParent()); //获取父级路径
getName()); // 获取文件名
setReadable(false); //设置是否可读
setWritable(false); //设置是否可写
setExecutable(false); //设置是否可执行
canRead(); // 是否可读
canWrite(); // 是否可写
canExecute(); //是否可执行
setLastModified(); //设置文件的最后修改时间
lastModified(); //获取文件的最后修改时间
createNewFile() // 创建文件
mkdir(); //创建文件夹(仅一级)
mkdirs(); //创建文件夹(父级不存在也创建)
renameTo(); //改名,可以移动文件
delete() //删除,文件可以直接删除,文件夹只能删空的
length() //文件大小
String[]list()
File[]listFiles()
1、
File parent = new File ("D:\\workpace0710\\day20");
String child = "day20笔记.txt";
File file1 = new File(parent,child);
System.out.println(file1.exists());
2、
String parent = "D:\\workspace0710\\day20";
String child = "day20笔记.txt";
File file1 = new File(parent,child);
System.out.println(file1.exists());
3、
File file1 = new File("D:\\workspace0710\\day20\\ day20笔记.txt ");
File file2= new File("day20笔记.txt ");