300/301自定义异常类和练习
自定义异常类
我们说了Java中不同的异常类,分别表示着某一种具体的异常情况,那么在开发中总是有些异常情况是SUN没有定义好的,此时我们根据自己业务的异常情况来定义异常类。例如年龄负数问题,考试成绩负数问题等等。
在上述代码中,发现这些异常都是IDK内部定义好的,但是实际开发中也会出现很多异常,这些异常很可能在JDK中没有定义过,例如年龄负数问题,考试成绩负数问题.那么能不能自己定义异常呢?
自定义异常类;
java提供的异常类,不够我们使用,需要自己定义一些异常类
格式:
public class XXXExcepiton extends Exception / RuntimeException{
添加一个空参数的构造方法
添加一个带异常信息的构造方法
注意:
1.自定义异常类一般都是以Exception结尾,说明该类是一个异常类
2.自定义异常类,必须的继承Exception或者RuntimeException
继承Exception:那么自定义的异常类就是一个编译期异常,如果方法内部批出了编译期异常,就必须处理这个异常,要么throws ,要么try . ..catch
继承RuntimeException:那么自定义的异常类就是一个运行期异常,无需处理,交给虚拟机处理(中断处理)
public class Excetepion extends Exception{
public Excetepion() {
super();
}
// 添加一个带异常信息的构造方法
// 查看源码发现,所有的异常类都会有一个带异常信息的构造方法,方法内部会调用父类带异常信息的拘造方法,让父类来处理这个异常信息*/
public Excetepion(String message) {
super(message);
}
}
自定义异常练习
/**
*
* @author Administrator
*自定义一个异常类,该异常为文件上传出错的异常
*在自定义类对象当中设定两个构造函数来实现对出现的异常信息进行抛出操作
*/
public class FileUpException extends Exception{
FileUpException() {
super();
}
FileUpException(String message)
{
super(message);
}
}
/**
*
* @author Administrator
*当前类用于模拟实现一个文件对象的上传校验操作
*/
public class FileUp {
public static void main(String[] args) throws Exception {
new FileUp().upload("bai.xls","d:/desktop");
}
public void upload(String fileName,String path) throws Exception
{
if(fileName!=null && !fileName.trim().equals(""))
{
if(path!=null && !path.trim().equals(""))
{
// 对所要进行上传文件对象的格式进行校验判断
boolean b=fileName.endsWith(".xls");
if(!b)
{
throw new FileUpException("文件的类型必须是.xls");
}
else
{
// 在此处执行具体的进行文件上传的操作
System.out.println("文件上传成功");
}
}
else
{
throw new FileUpException("文件的路径不能够为空");
}
}
else
{
throw new FileUpException("文件名不能够为空");
}
}
}