异常
异常
-
程序可能出现的问题
-
父类:Exception
-
异常分为两类;编译时异常、运行时异常
编译时异常和运行时异常的区别:
-
编译时异常:没有继承RuntimeException的异常,直接继承于Excpetion,编译阶段就会错误提示——除了RuntimeException和他的子类,其他都是编译时异常。编译阶段需要进行处理,作用在于提醒程序员。
-
运行时异常:RuntimeException本身和子类,编译阶段没有错误提示,运行时出现的,编译阶段不报错,是程序运行时出现的。一般是由于参数传递错误带来的问题
捕获异常
使用try catch 捕获异常
代码格式:
try{ //可能出现异常的代码 } catch(异常类名 e ){ //异常处理 }
灵魂四问
-
如果try中没有遇到问题,怎么执行?
-
会把try里面所有的代码全部执行完毕,不会执行catch里面的代码
-
如果try中可能会遇到多个问题,怎么执行?
-
会写多个catch与之对应,父类的异常需要写在下面
-
如果try中遇到的问题没有被捕获,怎么执行?
-
相当于try...catch白写了,当前异常会交给虚拟机处理
-
如果try中遇到了问题,那么try下面的其他代码还会执行吗?
-
不会执行了。try中遇到问题,直接跳转对应的catch,如果没有对应的catch与之匹配,则交给虚拟机处理
常用方法
public String getMessage() 返回此 throwable 的详细消息字符串
public String toString() 返回此可抛出的简短描述
public void printStackTrace()在底层是利用System.err.println进行输出把异常的错误信息以红色字体输出在控制台
细节:仅仅是打印信息,不会停止程序运行
处理异常的方式
-
虚拟机默认处理异常的方式
把异常信息以红色字体打印在控制台,并结束程序
-
捕获:try...catch
一般在调用处,能让代码继续往下运行。
-
抛出: throw throws
在方法中,出现异常了。方法就没有继续运行下去的意义了,采取抛出处理,让该方法结束运行并告诉调用者出现了问题。
自定义异常
-
定义异常类
-
写继承关系
-
空参构造
-
带参构造
意义:就是为了让控制台的报错信息更加的见名之意
File
File
-
File表示什么:File对象表示路径,可以是文件、也可以是文件夹。这个路径可以是存在的,也可以是不存在的
-
绝对路径和相对路径是什么意思?
绝对路径是带盘符的,相对路径是不带盘符的,默认到当前项目下去找。
-
File三种构造方法的作用
-
public File(String pathname) 把字符串表示的路径变成File对象
-
public File(String parent,String child)把父级路径和子级路径进行拼接
-
public File(File parent,String child)把父级路径和子级路径进行拼接
常见成员方法
获取并遍历:
public File[] listFiles() 获取当前该路径下所有内容
注意:
-
当调用者File表示的路径不存在时,返回null
-
当调用者File表示的路径是文件时,返回null
-
当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数组
-
当调用者File表示的路径是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回
-
当调用者File表示的路径是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件
-
当调用者File表示的路径是需要权限才能访问的文件夹时,返回null