------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
/*
异常
Exception
Exception内部包装了很多异常类,Exception是所有异常的父类,该Exception可以接受所有异常处理,但是一般不这么做,必须采取更加精准的处理方式
虽然Exception中包装了很多常见的异常类,但是我们也可以自定义异常类,自定义的异常类必须继承Exception,只有异常类才具备可抛性
自定义一个只接受大写A-Z的类,如果不是大写字母,就抛出自定义异常myexception
*/
class myexception extends Exception
{
myexception(String info)
{
super(info);
}
}
class onlyA_Z
{
void getCh(char ch)throws Exception
{
if((ch<'A')||(ch>'Z')){
throw new myexception("字符范围必须是大写A-Z");
}
System.out.println("正确字符");
}
}
class test3
{
public static void main(String[] args)
{
onlyA_Z myclass = new onlyA_Z();
try //异常处理语句 try,catch,finally
{
myclass.getCh('A');
} catch (Exception e) {
e.printStackTrace();
return ;
}
finally
{
System.out.println("一定会被执行的代码,如果异常处理语句中有return,函数会结束运行,但是finally也一定会执行");
}
}
}
/*
throws throw区别:
throws函数上抛出
throw函数内自定义位置上抛出,并且抛出的异常由throws接住,
RuntimeException:
如果是RuntimeException可直接由throw任意位置抛出。函数上可以不用声明,也可以通过编译
如果在函数外面声明了异常,调用者可以不用进行处理
异常在子父类覆盖时的特点
父类方法上抛出了异常,子类覆盖其方法时可以不抛异常,或者必须抛出父类声明的异常或者改异常的子类
父类方法上抛出了多个异常,子类覆盖其方法时可以不抛异常,或者必须抛出父类声明的异常子集,或者其子类异常
*/
异常
Exception
Exception内部包装了很多异常类,Exception是所有异常的父类,该Exception可以接受所有异常处理,但是一般不这么做,必须采取更加精准的处理方式
虽然Exception中包装了很多常见的异常类,但是我们也可以自定义异常类,自定义的异常类必须继承Exception,只有异常类才具备可抛性
自定义一个只接受大写A-Z的类,如果不是大写字母,就抛出自定义异常myexception
*/
class myexception extends Exception
{
myexception(String info)
{
super(info);
}
}
class onlyA_Z
{
void getCh(char ch)throws Exception
{
if((ch<'A')||(ch>'Z')){
throw new myexception("字符范围必须是大写A-Z");
}
System.out.println("正确字符");
}
}
class test3
{
public static void main(String[] args)
{
onlyA_Z myclass = new onlyA_Z();
try //异常处理语句 try,catch,finally
{
myclass.getCh('A');
} catch (Exception e) {
e.printStackTrace();
return ;
}
finally
{
System.out.println("一定会被执行的代码,如果异常处理语句中有return,函数会结束运行,但是finally也一定会执行");
}
}
}
/*
throws throw区别:
throws函数上抛出
throw函数内自定义位置上抛出,并且抛出的异常由throws接住,
RuntimeException:
如果是RuntimeException可直接由throw任意位置抛出。函数上可以不用声明,也可以通过编译
如果在函数外面声明了异常,调用者可以不用进行处理
异常在子父类覆盖时的特点
父类方法上抛出了异常,子类覆盖其方法时可以不抛异常,或者必须抛出父类声明的异常或者改异常的子类
父类方法上抛出了多个异常,子类覆盖其方法时可以不抛异常,或者必须抛出父类声明的异常子集,或者其子类异常
*/