2017-10-19 108 views
-4

我有一个jar文件。它有2个班。我在cmd中运行它,并给出了一个例外列表。当我再次运行它时,它只运行给我访问第一个登录类。我想知道是否有命令再次查看这些异常?我想尝试解决它们。Jar文件 - 异常

+1

这是“繁殖步骤”有用的地方。你不能奇迹般地跳到代码错误的地方,你需要采取措施去实现;) – bwfcwalshy

+0

我们确实需要可执行jar文件的内容以及java(我假设)文件的源代码。 – sagneta

+0

是否有任何异常信息?你可以附上他们在你的问题? – PixelsTech

回答

0

我假设你关闭了cmd并且不能再看到那些输出。没有本地方式来查看cmd的日志。因此,您需要重现出现这些错误的条件,并再次运行可能对您有所帮助。

0

确切了解代码的最佳做法是使用测试驱动开发(TDD)。使用TDD,您可以锻炼代码的每一行,包括在特定行中抛出异常。

下面是使用JUnit和一的Mockito几个例外的例子:

public class MyClass{ 
    private List<String> field; 
    public void doStuff(){ 
     System.out.println("Before calling s.size()"); 
     s.size(); 
    } 

    public void setField(List<String> s){ 
     field = s; 
    } 
} 

/*imports need to go here*/ 
public class MyTest { 
MyObject obj; //the class under test 
@Mock List mock; 

@Test(expected=NullPointerException.class) 
public void throw_null_pointer_exception_on_purpose(){ 
    obj = new MyObject(); 
    //obj.field == null 
    obj.doStuff(); //throws NullPointerException when s.size() is called in doStuff() method 
} 

@Test(expected=RuntimeException.class) 
public void throw_runtime_exception_on_purpose(){ 
    obj = new MyObject(); 
    obj.setField(mock); 
    doThrow(new RuntimeException()).when(mock).size(); 
    obj.doStuff(); //throws RuntimeException when s.size() is called in the doStuff() method. 
} 
} 

了解更多信息退房https://en.wikipedia.org/wiki/Test-driven_development