day15(11.21)笔记

------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的复制到另外目录下...

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章