1.throws的应用:
1).定义方法时,以后调用此方法,需要进行try-catch语句处理.
2).如果对语句不希望处理try-catch语句,以用throw进行抛出.
2.异常的处理结构:
try-catch-finally
3.自定义异常类
必须继承Exception
4.在自定义位置需要写明:throws Exception
catch语句为if-else结构.只匹配第一个.所以放置顺序很重要.
finnally,不管try是否发生作用,它均会执行.即使在之前遇到return语句. 如果希望它不执行,需要遇到system.exit(0)语句.
5.
例如
6.在类的继承时,子类throw的异常必须事父类异常的子异常,不能throw新的异常.只能比父类的少,不能比父类的多.
附例:自定义异常.
1).定义方法时,以后调用此方法,需要进行try-catch语句处理.
2).如果对语句不希望处理try-catch语句,以用throw进行抛出.
2.异常的处理结构:
try-catch-finally
3.自定义异常类
必须继承Exception
4.在自定义位置需要写明:throws Exception
catch语句为if-else结构.只匹配第一个.所以放置顺序很重要.
finnally,不管try是否发生作用,它均会执行.即使在之前遇到return语句. 如果希望它不执行,需要遇到system.exit(0)语句.
5.
例如
try
... {
if(x<0)
thrownewXxxexception("xxx");
else
thrownewYyyexception("yyy");
}
catch (Xxxexceptione)
... {
..
}
catch (Yyyexceptione)
... {
...
}
... {
if(x<0)
thrownewXxxexception("xxx");
else
thrownewYyyexception("yyy");
}
catch (Xxxexceptione)
... {
..
}
catch (Yyyexceptione)
... {
...
}
6.在类的继承时,子类throw的异常必须事父类异常的子异常,不能throw新的异常.只能比父类的少,不能比父类的多.
附例:自定义异常.
class
Test
... {
publicintdivide(intx,inty)throwsmyException,Exception
...{
if(y<0)
thrownewmyException("yisminus"+y);
intresult;
result=x/y;
returnresult;
}
}
class myException extends Exception
... {
publicmyException(Stringmsg)
...{
super(msg);
}
}
public class ByZero
... {
publicstaticvoidmain(String[]args)
...{
try
...{
newTest().divide(3,-9);
}
catch(myExceptione)
...{
System.out.println(e.getMessage());//返回字符串
e.printStackTrace();//返回详细信息
}
catch(Exceptione)
...{
System.out.println(e.getMessage());
}
System.out.println("he");
}
}
... {
publicintdivide(intx,inty)throwsmyException,Exception
...{
if(y<0)
thrownewmyException("yisminus"+y);
intresult;
result=x/y;
returnresult;
}
}
class myException extends Exception
... {
publicmyException(Stringmsg)
...{
super(msg);
}
}
public class ByZero
... {
publicstaticvoidmain(String[]args)
...{
try
...{
newTest().divide(3,-9);
}
catch(myExceptione)
...{
System.out.println(e.getMessage());//返回字符串
e.printStackTrace();//返回详细信息
}
catch(Exceptione)
...{
System.out.println(e.getMessage());
}
System.out.println("he");
}
}