您的位置:首页 > 职场人生

黑马程序员——异常以及File类

2014-10-31 21:13 267 查看
-----------android培训java培训、java学习型技术博客、期待与您交流!------------
异常就是超过了写程序人的预计的某些特殊情况,不在正常情况之列。
异常的体系
throwable
是所有错误或者异常的超类分为以下几类
1.Error
这些错误不需要更改代码。比如说数据库崩溃,服务器宕机等,不要更改代码去处理。
2.Exception
Exception是除了runtimeException和其子类以外在编译时都要进行代码处理的类,有2种方法,要么try要么抛出去。
3.RuntimeException
RuntimeException
和其所有的子类,都不会在编译的时候报异常,而是在运行时报异常,这时候我们就需要回头看看我们的代码是否有 问题,比如角标越界,空指针异常,类型转换异常等
每个类型的异常的特点 

Error体系 :
      
Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形。应用程序不应该抛出这种类型的对象(一般是由虚拟机抛出)。如果出
现这种错误,除了尽力使程序安全退出外,在其他方面是无能为力的。所以,在进行程序设计时,应该更关注Exception体系。

Exception体系包括RuntimeException体系和其他非RuntimeException的体系 :

1. RuntimeException:RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等。处理RuntimeException的原则是 :如果出现RuntimeException,那么一定是程序员的错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。 

2.其他非RuntimeException(IOException等等):这类异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误, 而是在应用环境中出现的外部错误。
出现异常有3种搭配方式
try....catch.....
try....catch.....finally.....
try....finally.....这种方式是为了防止检测代码出现错误停止运行finally里面跟的是一定执行的代码
throw和throws的区别
throw
4000
后面跟着的是异常对象而throws后面跟着的是异常类名。
对于异常时抛还是try的问题。
如果出现的问题自己能够解决,那么可以用try...catch...finally...要作为一个有责任感的程序员。
如果出现的问题自己不能解决,而且还是底层代码就尽量抛出去。
异常体系有3总常见方法
1.getMessage()
它返回的是一个字符串
2.ToString()
它返回的是异常类名和异常信息,返回一个字符串
3.printStackTrace()
它返回的是一个异常类名和异常信息,以及异常所出现的位置,返回的是void
自定义异常类
package
cn.itcast.exception;

public class Demo6_DiyException {
/**
* @param args
* 自定义异常
* @throws Exception 
*/
public static void main(String[] args) throws Exception {
Div d = new Div();
int num = d.div(10, -5);
System.out.println(num);
}

}

//除数不能为负数和零

class Div {
public int div(int a, int b) throws FuShuException {
if(b <= 0) {
throw new FuShuException("除数不能为负数和零");
}
return a / b;
}

}

class FuShuException extends Exception {
public FuShuException(String message) {
super(message);
}

}
自定义异常类一定要继承Exception
 6,异常总结
    
 RuntimeException以及其子类如果在函数中被throw抛出,可以不用在函数上声明。
    
 子类覆盖父类方法时,子类的方法必须抛出相同的异常或父类异常的子类。
如果父类抛出了多个异常,子类覆盖父类时,只能抛出相同的异常或者是他的子集,子类不能抛出父类没有的异常
    
 如果被覆盖的方法没有异常抛出,那么子类的方法绝对不可以抛出异常,如果子类方法内有异常发生,那么子类只能try,不能throws
    
当try对应多个catch时,最顶层的异常要放在最下面,反过来分析如果最顶层的异常放在第一行,那根据多态原理,后面的catch就没用了.

File类:
File类可以是一个文件名或者文件夹也可以是一个文件的路径,类里面有很多方法可以操作路径。
怎么创建File类对象
直接在File类的构造函数加上字符串类型的路径
路径分为两种:
绝对路径, 相对路径
绝对路径: 从盘符开始, 是一个固定的路径
相对路径: 不从盘符开始, 相对于某个位置. 在Eclipse中的Java工程如果使用相对路径, 那么就相对于工程根目录. cmd则相对应于
当前目录.
File类的一些方法
boolean
exists()         判断是否存在 boolean isFile();        是否是文件
boolean
isDirectory();    是否是文件夹 getParent());            获取父级路径

getName());            获取文件或文件夹名
lastModified(); 获取文件的最后修改时间    
createNewFile()        创建文件
mkdir();                创建文件夹(仅一级)
mkdirs();                创建文件夹(父级不存在也创建)
renameTo();                改名, 可以移动文件
delete()                删除,
文件可以直接删除, 文件夹只能删空的 length()                文件大小
File[]
listFiles()
-----------android培训java培训、java学习型技术博客、期待与您交流!------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 黑马程序员