JAVA基础异常处理问题
各位能具体讲解一下流程吗?我是初学者,看了书,感觉没理解透彻。尤其是catch语句后面的一点都不能理解,比如catch(Exceptione)中e起到了什么作用?还有这句...
各位能具体讲解一下流程吗?我是初学者,看了书,感觉没理解透彻。尤其是catch语句后面的一点都不能理解,比如catch(Exception e)中e起到了什么作用?还有这句System.out.println(e);将e放到()内是什么意思?再讲解一下try-catch语句的具体流程。谢谢各位了!!!
展开
5个回答
展开全部
流程就是
程序进入try块 发生异常 从发生的异常的语句进入catch块 (发生异常以下的语句都不会被执行) 执行catch块语句 然后执行finally块的语句
如果进入try块以后没有发送异常 就不会执行catch块的语句 执行玩try块语句以后 执行finally块的语句
catch(Exception e) 这个是捕获所有异常 一般测试的时候用 真正的程序没有这么写的 而且确定程序会抛出什么类型的异常 然后用专门的Exception类型去捕捉异常
System.out.println(e);这个没意义 就是一个演示说明抛出了异常 真正的程序也绝对不可能这么写
举个例子就是 你这个打开数据库
先会在try块里连接数据库 这里最容易出现的就是数据库没有找到 这个时候就会抛出SQLException异常 抛出这个异常以后需要用catch块进行处理 这里就要提示用户 确定数据库已经打开什么
最后在finally里 关闭数据库连接
程序进入try块 发生异常 从发生的异常的语句进入catch块 (发生异常以下的语句都不会被执行) 执行catch块语句 然后执行finally块的语句
如果进入try块以后没有发送异常 就不会执行catch块的语句 执行玩try块语句以后 执行finally块的语句
catch(Exception e) 这个是捕获所有异常 一般测试的时候用 真正的程序没有这么写的 而且确定程序会抛出什么类型的异常 然后用专门的Exception类型去捕捉异常
System.out.println(e);这个没意义 就是一个演示说明抛出了异常 真正的程序也绝对不可能这么写
举个例子就是 你这个打开数据库
先会在try块里连接数据库 这里最容易出现的就是数据库没有找到 这个时候就会抛出SQLException异常 抛出这个异常以后需要用catch块进行处理 这里就要提示用户 确定数据库已经打开什么
最后在finally里 关闭数据库连接
展开全部
try 就是将代码块中可能出现的异常进行捕捉,交由catch进行处理,这样也不至于让程序崩溃。
catch 就是捕捉你想要捕捉的异常,对不同的异常根据具体需要进行不同的处理。
finally 就是不管这段代码有没有异常都会执行到的地方,可以处理一些关闭流,释放资源等等的一些事。
System.out.println(e);就是把异常打出来
catch 就是捕捉你想要捕捉的异常,对不同的异常根据具体需要进行不同的处理。
finally 就是不管这段代码有没有异常都会执行到的地方,可以处理一些关闭流,释放资源等等的一些事。
System.out.println(e);就是把异常打出来
追问
恩 这些我知道。我想问的主要还是这句catch(Exception e)中e起到了什么作用?我知道Exception是异常类,e是别名。主要就是不知道Exception e放在catch是什么意思?
追答
e就是一个异常对象,里面有异常信息,放在catch里就是说,当发生异常且是你需要捕捉的异常时,系统会将这个异常的对象传入catch代码块中,让你处理你需要处理的事。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
try-catch的意思是,当TRY语句块中的代码发生异常时,跳到CATCH语句块执行,然后再执行finally语句块,即使你在CATCH块中写了RETURN,FINALLY块中的代码也会执行。
像你的例子中int a=13/0,这句话肯定抛异常,那么他的下一句就不会执行,直接跳到CATCH块中执行,然后执行FINALY块中代码
像你的例子中int a=13/0,这句话肯定抛异常,那么他的下一句就不会执行,直接跳到CATCH块中执行,然后执行FINALY块中代码
追问
catch(Exception e)中e起到了什么作用?我知道Exception是异常类,e是别名。主要就是不知道Exception e放在catch是什么意思?
还有这句System.out.println(e);将e放到()内是什么意思?
追答
e 是EXCEPTION对象的实例,你可以理解为参数,里面存放错误堆信息。
System.out.println(e); 这句话是把异常打钱到控制台,类似于:
System.out.println(e.toString());
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
try里面的语句是要执行的,如果这里面发生了异常的话,而且这个异常类型是属于Exception类的实现类的话,就会通过catch里面的语句进行处理。最后执行finally里的语句
System.out.println()里面如果是一个对象,则会自动加上一个toString()方法,把该对象变成它所对应的字符串。
而toString()方法则默认是返回:类名+"@"+hashCode()
System.out.println()里面如果是一个对象,则会自动加上一个toString()方法,把该对象变成它所对应的字符串。
而toString()方法则默认是返回:类名+"@"+hashCode()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-05-30
展开全部
我晕,这个Demo...害死人。举个文件操作的例子。。
try语句块是尝试某个操作,比如尝试打开一个文件,(这个在try)语句中。如果这个文件不存在,那么try的语句肯定会出错!这个出错java里有个异常处理机制出应对这种问题。发现文件无法正常打开(由于文件不存在),则会转到catch语句块中执行。大致是这样。finally是做什么,记不大清楚了。
try语句块是尝试某个操作,比如尝试打开一个文件,(这个在try)语句中。如果这个文件不存在,那么try的语句肯定会出错!这个出错java里有个异常处理机制出应对这种问题。发现文件无法正常打开(由于文件不存在),则会转到catch语句块中执行。大致是这样。finally是做什么,记不大清楚了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询