黑马程序员技术交流社区
标题:
这个程序报错,请问怎么修改,并说出原因.
[打印本页]
作者:
luguoyuanf
时间:
2013-3-30 22:23
标题:
这个程序报错,请问怎么修改,并说出原因.
本帖最后由 luguoyuanf 于 2013-3-31 21:06 编辑
class Demo
{
public static void func()
{
try
{
throw new Exception();
}
finally
{
System.out.println("B");
}
}
public static void main(String[] args)
{
try
{
func();
System.out.println("A");
}
catch(Exception e)
{
System.out.println("C");
}
System.out.println("D");
}
}
作者:
郭兴业
时间:
2013-3-30 22:31
class Demo
{
public static void func() throws Exception//因为你程序没有处理掉这个异常,所以你还得往外抛
{
try
{
throw new Exception();
}
finally
{
System.out.println("B");
}
}
public static void main(String[] args)
{
try
{
func();
System.out.println("A");
}
catch(Exception e)
{
System.out.println("C");
}
System.out.println("D");
}
}
作者:
蔡陶军
时间:
2013-3-30 22:37
楼主你在func()方法没有进行抛
package com.ctj.www;
public class Democ {
public static void func()throws Exception{
try{
throw new Exception();
}
finally{
System.out.println("B");
}
}
public static void main(String[] args) {
try{
func();
System.out.println("A");
}
catch(Exception e){
System.out.println("C");
}
System.out.println("D");
}
}
复制代码
作者:
_王涛
时间:
2013-3-30 22:40
修改后的代码:
class Demo
{
public static void func()
throws Exception
{
try
{
throw new Exception();
}
finally
{
System.out.println("B");
}
}
public static void main(String[] args)
{
try
{
func();
System.out.println("A");
}
catch(Exception e)
{
System.out.println("C");
}
System.out.println("D");
}
}
分析:当主函数运行func()时,此函数边抛出一个异常Exception,因此就必须在函数上对其进行声明。此时编译通过。
进入finally块输出B,同时主函数中的catch块捕捉到这个异常,并处理输出C,接着输出D;
于是结果是:
B
C
D
作者:
赵喜平
时间:
2013-3-30 22:43
class Demo
{
public static void func() throws Exception() //在此处 声明
{
try
{
throw new Exception(); //此处的异常没有捕捉就需要在函数上进行声明
}
finally
{
System.out.println("B");
}
}
作者:
袁梦希
时间:
2013-3-30 22:58
本帖最后由 袁梦希 于 2013-3-30 22:59 编辑
class Test9
{
public static void func()
{
try
{
try {
throw new Exception();
catch (Exception e) {
e.printStackTrace();
}
}
finally
{
System.out.println("B");
}
}
public static void main(String[] args)
{
try
{
func();
System.out.println("A");
}
catch(Exception e)
{
System.out.println("C");
}
System.out.println("D");
}
}
复制代码
如果你把异常捕获掉 ,那么抛出的肯定是异常 且输出的是 B A D
class Test9
{
public static void func() throws Exception
{
try
{
throw new Exception();
}
finally
{
System.out.println("B");
}
}
public static void main(String[] args)
{
try
{
func();
System.out.println("A");
}
catch(Exception e)
{
System.out.println("C");
}
System.out.println("D");
}
复制代码
如果您把异常抛出就没事了 因为异常类中抛出了异常 所以创建异常对象的时候必须抛出异常或者捕获 且输出的是 B C D
作者:
胡帅冰
时间:
2013-3-30 22:59
package A;
class Demo
{
public static void func() throws Exception //在这里抛出一下就可以了
{
try
{
throw new Exception(); //在没有修改之前 这里提示错误 未处理的异常类型Exception
}
finally
{
System.out.println("B");
}
}
public static void main(String[] args)
{
try
{
func();
System.out.println("A");
}
catch(Exception e)
{
System.out.println("C");
}
System.out.println("D");
}
}
复制代码
func中的try块抛出了异常throw new Exception(); 抛出异常却没有处理异常,所以在编译的时候出错。
作者:
黑马19我最牛
时间:
2013-3-31 00:12
胡帅冰 发表于 2013-3-30 22:59
func中的try块抛出了异常throw new Exception(); 抛出异常却没有处理异常,所以在编译的时候出错。 ...
class Demo
{
public static void func()
throws Exception
{
try
{
throw new Exception();
}
finally
{
System.out.println("B");
}
}
public static void main(String[] args)
{
try
{
func();
System.out.println("A");
}
catch(Exception e)
{
System.out.println("C");
}
System.out.println("D");
}
}
你上面的try抛出了一个异常,你是准备把这个异常抛给谁那?没有表示出抛给谁,怎么去处理那?
作者:
吴林飞
时间:
2013-3-31 00:37
class MyDemo
{
public static void func()//throws Exception 方法一:方法中如果抛出了一个异常,而且是编译时异常,方法上必须声明。
{
try {
throw new Exception(); // throw new RuntimeException 方法二:如果方法上不声明的话,可以在此抛一个运行时异常。
}
finally{
System.out.println("B");
}
}
public static void main(String[] args){
try{
func();
System.out.println("A");
}
catch(Exception e) {
System.out.println("C");
}
System.out.println("D");
}
}
两种方式都可以,希望对你有帮助。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2