当前位置:  技术问答>java相关

异常一题?????????????????

    来源: 互联网  发布时间:2015-03-09

    本文导语:  import java.io.IOException; public class ExceptionTest {    public static void main (String args[]) { try { methodA(); }  catch (IOException e) { System.out.println("Cautht IOException"); } catch (Exception e){ System.out.println("Caught Exception"); } } public ...

import java.io.IOException;
public class ExceptionTest
{

   public static void main (String args[])
{
try
{
methodA();

catch (IOException e)
{
System.out.println("Cautht IOException");
} catch (Exception e){
System.out.println("Caught Exception");
}
}
public   void methodA(){
throw new IOException();
}
}
输出结果为:non-static method methodA() cannot be referenced from a static context methodA();//这句话怎么理解??
什么情况下输出为Cautht IOException
什么情况下输出为Caught Exception
什么情况下输出为什么也没有.
肯请大家帮忙,我只能加这么多分了。

|
non-static method methodA() cannot be referenced from a static context methodA();//非静态方法,不能在静态方法中直接调用
import java.io.IOException;
public class ExceptionTest
{

  public static void main (String args[])
{
ExceptionTest et = new ExceptionTest();
try
{
et.methodA();

catch (IOException e)
{
System.out.println("Cautht IOException");
} catch (Exception e){
System.out.println("Caught Exception");
}
}
public  void methodA(){
throw new IOException();
}
}
就可以了
产生IOException时,输出为Cautht IOException。
产生其他异常时如/0等,输出为Caught Exception


|
静态方法中只能应用静态方法和静态变量
你的main方法是static,引用的methodA也必须是static

|
1。不能在静态方法里调用非静态方法。
2。当然是有IOException抛出的时候,就是methodA运行
3。....
4。不运行

|
几个错误,
1,静态方法不能调用非静态方法,解决方法参照上面。
2,methodA()既然要抛异常,就必须声明:
public  void methodA() throws IOException

3,仅就本程序而言,必然会出IO异常,Caught Exception要抛出别的异常才会引发

|
1.出结果为:non-static method methodA() cannot be referenced from a static context methodA();//这句话怎么理解??
 
解决:你要看看书了,在静态上下文中不能引用非静态方法methodA(),解决办法有两个:1)把public void methodA()改为public static void methodA()
2)在main()中加一句ExceptionTest et=new ExceptionTest();然后再在try{}中把methodA(),改为et.methodA()
这样就解决了第一个问题,不过你的程序还有问题的,看下去


2.什么情况下输出为Cautht IOException?
解决:你这个程序有问题,方法methodA()中throw了一个IO异常,而且没有再抛出就是throws,那么必须在抛出的地方解决。你需要看看throws和throw。解决办法:把public static void methodA()后面加上throws IOException。这样就OK了,输出为Caught IOException.

3.什么情况下输出为Caught Exception?
解决:你去看看异常的类结构,这程序改不出Caught Exception的结果的。


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3