------2.16.11.21------------
Day15
异常分类:
Java.lang.Throwable
Error 错误 Exception 异常
Error:一般只的是”错误”,这种错误是程序员控制不力的,一般”重大错误”
Exception :一般只当是”异常”,这种异常程序眼可以通过修改代码排除异常
常见异常:
空指针异常 NullPointerException
数组下标越界 ArrayIndexOutOfBoundsException
类转换异常 ClassCastException
数字格式化异常 NumberFormatException
字符串下标越界 StringIndexOutOfBoundsException
算术运算异常 ArithmicException
非运行异常:
转换异常 ParseException
文件未找到异常 FileNotFoundException
文件内容操作异常 IOException
异常处理机制(处理具体的异常)
第一种:使用throws关键字抛出异常
1.基本语法 : throws 异常类
2.在方法的签名后面使用:异常类
3,回避异常(形式上的处理,不是真正的异常处理,实际上和没有处理结果是一样的.所以一般不建议写)
Public void add() throws NullPointerException,ClassCastException
4,异常最终会抛给jvm,jvm会在控制台打印出异常对象以及异常的跟踪栈信息
第二种:捕获异常
1,基本语法:
//try{
可能产生异常的语句
}catch(异常类 异常变量){
对异常做的具体处理
}catch(异常类 异常变量){}
2,try里面放可能产生异常的语句,但是不一定会针对产生异常.
Try ...catch执行流程:
按照顺序结构从上到下执行代码
当执行到try代码块中时,若果代码块没有产生产生异常,不会执行catch代码块
当执行到try代码块中产生异常了,jvm首先会终止运行.
在内存产生一个异常对象:空指针,算数运算等等
然后根据代码块对异常处理后,不会再返回,try代码块继续后自行代码块中夏敏的语句,会后自行catch代码块下的内容.
3,多个catch代码块应该是互斥的
Try代码块不能单独存在,可以跟catch,也可以跟着finally
//try{
}catch(){
}finally{
//资源数据库, 关闭流...直接class
}
第三种:自定义异常
基本语法:定义一个类:
Class 类名 extends RuntimeException{
//添加无参数的构造方法
一个参数的构造方法
在含有一个参数的构造方法中,调用服了的含有一个参数的构造方法;
最终都会调用Throwable类中一般含有一个参数的
}
使用自定义异常类
一般在一个方法张,如果某些内容可能不符合要求正常逻辑时,可以:
...throw new 自定义异常类()
或 throw
登录,注册的应户名密码等在控制台提示异常
第四种:throws系统异常类对象
,try... catch 捕获异常
5,Exception常用的方法
.getMessage()
.getCause()
.printStrackTrace()
补充:
6含有继承关系的类中,子类不能比父类抛出范围更大的异常,(异常的父类或者更上上的父类)但是可以抛出来多个同级的异常
String类 StringBuffer 类和StringBuilder区别
相同点:都是java提供的用于操作字符串的特殊类,
这三个类都在java.lang包下,都使用final修饰
不同点:
String:
1,是java操作字符串的常用类
2,字符串长度被定义之后,不能再改变
3,底层使用char数组+其他操作
A mutable sequence of characters. This class provides an API compatible
* with <code>StringBuffer</code>, but with no guarantee of synchronization.
* This class is designed for use as a drop-in replacement for
* <code>StringBuffer</code> in places where the string buffer was being
* used by a single thread (as is generally the case).
StringBuffer 是单线程的.但是是安全的.
StringBuilder是多线程的,但是是线程不安全的
常用方法
Append()
Insert()
Delete()
IO API
1.FIle类
What
什么是File类?
是java中用于操作磁盘文件|目录的一个类.只能对磁盘中的牡蛎|文件进行物理操作/(只能操作文件的物理信息,不能操作文件内容./)
目录名,文件名,文件的大小,上一层目录.文件是否刻度,文件是否科协,创建目录,创建文件,查看最后一次修改时间等等
Why
为什么要用File类
利用java代码实现与计算机磁盘文件|目录进行物理操作
When
什么时候用?
操作
How
怎么用呢?
常用的方法:
1)File作为目录,常用的方法
0)构造方法
isDirectory():是否是目录
mkdir()创建目录
2)作为文件,常用的方法
2. File 类的常用方法:
1) File 作为目录,常用的方法:
0) 构造方法
File(String )
File(URI)
File(File,String)
File(String,String)
1) isDirectory():是否是目录
如果是目录,返回true|
如果不是目录或者目录不存在,返回false
2) exists():是否存在
3) mkdir() :创建目录(单层)
4) mkdirs():创建目录(多层,包括2层)
5) delete():删除目录|文件
6) getName():获取目录名称
7) getParent():获取父目录名称
8) isAbsolute():判断是否为绝对路径
9) canRead():是否可读
10) canWrite():是否可写
......
2) File 作为文件,常用方法:
1) isFile():是否是文件
2) exists():文件是否存在
3) createNewFile():创建文件
4) delete():删除文件
5) isHiddle():是否是隐藏文件
6) canRead()|canWrite(): 是否可读|可写
8) lastModified():最后一次修改时间
9) renameTo():重命名
3) 高级方法(高级操作)
列出某目录下的所有文件(包括子目录下的文件)
删除某目录下的所有文件(包括子目录下的文件)
列出某目录下所有.mp3结尾的文件
删除某目录下所有以.jpg结尾的文件
....
将某目录下所有文件大小超过10M的复制到另外目录下...