当前位置: 技术问答>java相关
谁能详细说明一下try catch和throws 和throw的区别和联系,具体用法……
来源: 互联网 发布时间:2015-10-15
本文导语: 谁能详细说明一下try catch和throws 和throw的区别和联系,具体用法…… 多谢! | try,catch: 对于会觉得会有异常抛出的程序块,用try{}包住,然后用catch来抓住这个异常,在catch中对异常做处理...
谁能详细说明一下try catch和throws 和throw的区别和联系,具体用法……
多谢!
多谢!
|
try,catch:
对于会觉得会有异常抛出的程序块,用try{}包住,然后用catch来抓住这个异常,在catch中对异常做处理,
在try中如果有异常的话,程序会转到catch而不会中断,通常这两个是配合使用的,如果你不想因为程序有错,而抛出一大堆异常的话,你就把该程序try起来,
throw:
try和catch只能获取程序运行时引发的异常,而throw语句可以引发明确的异常,程序到了throw语句这后就立即停止,不会执行后面的程序,
使用方法:
try
{
throw exception-list;
....
}
catch()
{
}
不过这种用法比较少,至少是我比较少用:)
throws:
如果一个方法会有异常,但你并不想处理这个异常,就在方法名后面用throws,这样这个异常就会抛出,谁调用了这个方法谁就要处理这个异常,或者继续抛出,使用方法:
tyep method-name(parameter-list) throws exception-list
{
.......
}
对于会觉得会有异常抛出的程序块,用try{}包住,然后用catch来抓住这个异常,在catch中对异常做处理,
在try中如果有异常的话,程序会转到catch而不会中断,通常这两个是配合使用的,如果你不想因为程序有错,而抛出一大堆异常的话,你就把该程序try起来,
throw:
try和catch只能获取程序运行时引发的异常,而throw语句可以引发明确的异常,程序到了throw语句这后就立即停止,不会执行后面的程序,
使用方法:
try
{
throw exception-list;
....
}
catch()
{
}
不过这种用法比较少,至少是我比较少用:)
throws:
如果一个方法会有异常,但你并不想处理这个异常,就在方法名后面用throws,这样这个异常就会抛出,谁调用了这个方法谁就要处理这个异常,或者继续抛出,使用方法:
tyep method-name(parameter-list) throws exception-list
{
.......
}
|
public class ExceptionMethods
{
public static void f() throws Exception
{
System.out.println("originating the exception in f()");
throw new Exception("thrown from f()");
}
public static void g() throws Throwable {
try
{
f();
}
catch(Exception e)
{
System.out.println("Inside g(), e.printStackTrace()");
e.printStackTrace();
//throw e; // 17
throw e.fillInStackTrace(); // 18
}
}
public static void main(String[] args) throws Throwable
{
try
{
g();
}
catch(Exception e)
{
System.out.println("Caught in main, e.printStackTrace()");
e.printStackTrace();
}
}
}
{
public static void f() throws Exception
{
System.out.println("originating the exception in f()");
throw new Exception("thrown from f()");
}
public static void g() throws Throwable {
try
{
f();
}
catch(Exception e)
{
System.out.println("Inside g(), e.printStackTrace()");
e.printStackTrace();
//throw e; // 17
throw e.fillInStackTrace(); // 18
}
}
public static void main(String[] args) throws Throwable
{
try
{
g();
}
catch(Exception e)
{
System.out.println("Caught in main, e.printStackTrace()");
e.printStackTrace();
}
}
}
|
throws用在一个方法定义后边,定义抛出异常清单
throw用在方法体内,是真正抛出异常的地方
try包含了所有有可能抛出异常的代码段
catch紧跟在try段后面,捕捉抛出的异常,并定义处理方法。
每一本讲到Exception Handling的书应该都有讲吧
throw用在方法体内,是真正抛出异常的地方
try包含了所有有可能抛出异常的代码段
catch紧跟在try段后面,捕捉抛出的异常,并定义处理方法。
每一本讲到Exception Handling的书应该都有讲吧
|
try catch是捕捉异常
throw是抛出异常
throws是定义方法抛出异常
throw是抛出异常
throws是定义方法抛出异常
|
http://expert.csdn.net/Expert/topic/1103/1103795.xml?temp=.9753992