异常及File类概述

一、异常

1、异常分类:

Throwable:Throwable类是 Java 语言中所有错误或异常的超类。它只有两个子类

Error:属于严重问题,只能避免;如内存溢出(OutOfMemory)

Exception:可以解决的异常问题

编译时期异常:在写代码期间遇到的异常,不处理没办法运行;

运行时期异常(RuntimeException):在程序运行时期遇到的异常,一般情况不是编译时期异常就是运行时期异常;

2、异常处理:

1)捕获异常:try-catch-finally

A:格式:try{

有可能出现问题的代码

}catch(异常类名 变量名){ //若try中的代码与该异常类相符合,便执行catch中的代码

问题处理

}finally{ //finally{}没有必要可以不写

一定会执行的代码,一般用于释放资源

}

若一段代码有多个异常

方式一:

try{

}catch(){ //小异常类先catch

}chtch(){ //大异常类后catch

}finally{

}

方式二:

try{

}catch(异常类名1 | 异常类名2 | 异常类名3  变量名){

}finally{

}

B:Throwable常用方法:用于异常处理

如果try中代码出现异常,jvm会自动生成一个异常对象用来与catch的参数异常类(只能比可能出现的异常大或者相等)作比较,如果相匹配那么便执行catch中的代码;

public string getMessage():返回的是一个异常的消息字符串

public String toString():返回的是一个简单的描述信息

public void printStackTrace():描述异常信息,以及出现的具体位置在哪里(开发中常用)

egg: import java.util.ArrayList;

public class ThrowableDemo {

public static void main(String[] args) {

demo1(); //by zero

demo2(); //java.lang.ArrayIndexOutOfBoundsException: 4

demo3(); /*java.lang.NullPointerException

at org.westos.exception.ThrowableDemo.demo3(ThrowableDemo.java:17)

at org.westos.exception.ThrowableDemo.main(ThrowableDemo.java:9)*/

}

private static void demo3() {

ArrayList<String> al = null;

try {

System.out.println(al.get(0));

} catch (NullPointerException e) { //空指针异常

e.printStackTrace();

}

}

private static void demo2() {

try {

int[] arr = {1,2,3};

System.out.println(arr[4]);

} catch (ArrayIndexOutOfBoundsException e) { //数组下角标越界异常

String string = e.toString();

System.out.println(string);

}

}

private static void demo1() {

try {

System.out.println(9/0);

} catch (ArithmeticException e) { //运算异常

String message = e.getMessage();

System.out.println(message);

}

}

}

C:final,finally,finalize区别:

final:最终的,修饰类 类不可被继承;修饰成员方法 方法不能重写;修饰成员变量 常量

finally:现在IO流中或者数据中,用来释放资源;在try-catch中属于必须执行的

finalize():是Object的方法,与垃圾回收器有关,调用System.gc()实际上是调用了重写了Object的finalize()方法

D:catch中含有return的情况

当catch中需要返回值,最终返回的值便是它,无论后面finally中是否对该值有没有修改

finally中修改的只是该值,返回值还是由catch中return决定,若finally中也有return就另说;

egg: public class FinallyDemo {

public static void main(String[] args) {

System.out.println("返回值 = " + getint()); //返回值 = 20

}

public static int getint(){

int a = 10;

try {

System.out.println(a/0);

} catch (ArithmeticException e) {

a = 20;

return a; ////这里面形成了一种回路径

} finally {

a = 30;

System.out.println("a = " + a); //a = 30

}

return a;

}

}

2)抛出异常:throws

A:格式:在方法上抛出

public static void show() throws 异常类名{} //同样抛出异常只能往大里抛,最好和可能出现的异常相同

注意;不建议在main()方法上抛出异常

B:throws和throw的区别

throws:一般在方法声明上抛出

抛出的是一个异常类名,可以抛出多个异常,中间用逗号隔开

throws表示抛出异常,这段代码可能会抛出异常

一般情况:throws用的比较多

throw:一般在方法中进行抛出

抛出的是一个异常对象(匿名对象的方式)

throw:表示抛出:肯定的抛出异常(具体异常),走到这块代码,一定会执行throw中的异常

在语句中进行处理

egg: public static void method() throws Exception{

int a = 10;

int b = 0;

if(b == 0){

throw new Exception();//直接指定的异常:大方向的异常

}else{

System.out.println(a/b);

}

}

C:注意事项:

如果子类重写的父类的方法有异常抛出,那么子类重写的方法只能抛出比父类方法小的异常,或者一样;

如果父类的方法没有异常抛出,那么,子类重写的方法也不能抛出异常,只能进行异常捕获

3、自定义异常类

自定义异常类:

1)必须继承Exception或者RuntimeException

2)必须有构造方法,以便jvm生成自定义异常类对象

3)可有有一些自己的异常处理方法

二、File类

1、概述:文件和目录路径名的抽象表示形式;可以把一个文件或者目录封装成一个对象;

2、构造方法:

File(String pathname):将该路径名称的文件或者目录封装成了一个File实例(常用)

File(String parent, String child):将parent目录里面的child文件封装成一个File实例

File(File parent, String child):将File类型的parent目录里得child文件封装成一个File实例

egg: File file = new File("e:\\Demo\\a.txt"); // 绝对路径

File file = new File("a.txt"); //相对路径;在该项目下

3、常用方法

public boolean createNewFile throws IOException():表示创建文件,返回true,若文件存在返回false创建失败

public boolean mkdir():创建文件夹/目录,如果存在该文件夹,就不需要创建

public boolean mkdirs():创建多个文件夹/目录,只要路径上了目录不存在就创建

egg: File file = new File("e:\\a\\b\\c\\d\\e");

file.mkdirs(); //就会创建a b c d e目录

public boolean delete():删除此抽象路径名表示的文件或目录

//一次只能删除一个最顶层的文件或目录,且不能删除有文件或者目录的目录;

//该输出方式不经过回收站,不能找回;

public boolean renameTo(File dest):重命名

//两个文件路径一致,只会重命名

//两个文件路径不一致,不仅重命名,还会剪切,将前者移动到renameTo参数所在的目录下;

判断功能:

public boolean isAbsolute():判断该路径是否是绝对路径

public boolean isFile()判断此文件是否为一个标准文件

public boolean isHidden():判断此抽象路径表示的文件是否是一个隐藏文件

public boolean canRead():是否可读

public boolean canWrite():是否可写

获取功能:

public String getAbsolutePath():获取绝对路径

public STring getPath():获取相对路径

public String getName():获取文件或者目录的名称

public long length():获取文件的长度

public long lastModified():返回次抽象路径文件最后一次被修改的时间,返回的修改时间的一个毫秒值

//使用Date SimpleDateFormat类可以将其转换成String类型

egg: File file = new File("e:\\demo\\a.txt");

Date date = new Date(file.LastModified());

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String s = sdf.format(date);

System.out.println(s);

public String[] list():获取指定盘符下的所有的文件以及文件夹的名称数组

public File[] listFiles():获取指定盘符下的所有文件以及文件夹的File对象数组(常用)

egg:

4、文件名称过滤器 —— FilenameFileter接口

public File[] listFiles(FileFilter filter)

public String[] list(FilenameFilter filter)(常用)

egg:

时间: 2024-10-10 11:15:48

异常及File类概述的相关文章

6.01_异常与File类

一.异常的概述和分类 * A:异常的概述 * 异常就是Java程序在运行过程中出现的错误. * B:异常的分类 * 通过API查看Throwable * Error * 服务器宕机,数据库崩溃等 * Exception C:异常的继承体系 * Throwable * Error * Exception * RuntimeException 二.JVM默认是如何处理异常的 * A:JVM默认是如何处理异常的 * main函数收到这个问题时,有两种处理方式: * a:自己将该问题处理,然后继续运行

java019异常、File类

异常的分类: * Error:称为错误类.表示java运行时系统内部错误或者资源耗尽的错误,仅靠修改程序本身不能恢复执行的.比如:服务器宕机,数据库崩溃等 * Exception:称为异常类,表示程序本身可以处理的错误. 继承体系 * Throwable  * Error   * Exception   * RuntimeException //除了运行时异常都是编译时异常,一般都是程序员本身的错误 JVM默认处理异常的方式: * a:自己将该问题处理,然后继续运行,对应下方的 a 代码 * b

day19&lt;异常&amp;File类&gt;

异常(异常的概述和分类) 异常(JVM默认是如何处理异常的) 异常(try...catch的方式处理异常1) 异常(try...catch的方式处理异常2) 异常(编译期异常和运行期异常的区别) 异常(Throwable的几个常见方法) 异常(throws的方式处理异常) 异常(throw的概述以及和throws的区别) 异常(finally关键字的特点及作用) 异常(finally关键字的面试题) 异常(自定义异常概述和基本使用) 异常(异常的注意事项及如何使用异常处理) 异常(练习) Fil

java之File类

1.File类概述 我们要想实现IO的操作,就必须知道硬盘上文件的表现形式.而java就提供了一个File类来让我们使用. File:文件或目录(文件夹)路径名的抽象表示形式. 2.File类的构造方法 File(String pathname) 根据一个路径得到File对象 File(String parent,String child) 根据一个目录和一个子文件/子目录得到一个File对象 File(File parent,String child) 根据父File对象和一个子文件/目录得到

File类整理

File类概述 File更应该叫做一个路径,是一个文件和目录路径名的抽象表示形式. 构造方法 File(String pathname):根据一个路径得到File对象 package com.learn.io; import java.io.File; import java.io.IOException; public class IoTest { public static void main(String[] args) throws IOException { File file = n

Map集合&amp;&amp;异常处理&amp;&amp;file类

Map集合 *定义: *集合定义方法: Map<键名,键值> 变量名=new Map的子类<键名,键值>():   键名不能重复 Map<String,Integer> map=new HashMap<String,Integer>(); *迭代: 例:对Map集合进行添加并将其进行迭代输出 第一种方法: entrySet()   将map集合中键名和键值之间的映射关系进行封装 第二种方法: map集合中 keySet()    获取键名         

异常、Throwable、finally、File类(十九)

1.异常的概述和分类 * A:异常的概述 * 异常就是Java程序在运行过程中出现的错误.* B:异常的分类 * 通过API查看Throwable * Error * 服务器宕机,数据库崩溃等 * ExceptionC:异常的继承体系 * Throwable * Error * Exception * RuntimeException 2.JVM默认是如何处理异常的 * :JVM默认是如何处理异常的 * main函数收到这个问题时,有两种处理方式: * a:自己将该问题处理,然后继续运行 * b

(1)Map集合 (2)异常机制 (3)File类 (4)I/O流

1.Map集合(重点)1.1 常用的方法 Set<Map.Entry<K,V>> entrySet() - 用于将Map集合转换为Set集合. 其中Map.Entry<K,V>是来自java.util包中的接口,常用方法如下: K getKey() - 用于获取当前接口类型引用中的key值并返回. V getValue() - 用于获取当前接口类型引用中的value值并返回. Set<K> keySet() - 用于将Map集合中所有的键放入Set集合中并返

黑马程序员——【Java基础】——File类、Properties集合、IO包中的其他类

---------- android培训.java培训.期待与您交流! ---------- 一.File类 (一)概述 1.File类:文件和目录路径名的抽象表现形式 2.作用: (1)用来将文件或文件夹封装成对象 (2)方便于对“文件”与“文件夹属性信息”进行操作 (3)File对象,可以作为参数传递给流的构造函数 (二)构造方法 * 通过File的构造函数创建File对象 方式1:File f = new File("c:\\a.txt"); 方式2:File f2 = newF