Tag: 例外

try,catch和finally的执行顺序是什么?

在这个java代码中, import java.io.IOException; public class Copy { public static void main(String[] args) { if (args.length != 2) { System.err.println(“usage: java Copy srcFile dstFile”); return; } int fileHandleSrc = 0; int fileHandleDst = 1; try { fileHandleSrc = open(args[0]); fileHandleDst = create(args[1]); copy(fileHandleSrc, fileHandleDst); } catch (IOException ioe) { System.err.println(“I/O error: ” + ioe.getMessage()); return; } […]

Mockito – 期望0匹配,1记录(InvalidUseOfMatchersException)

我正在尝试模拟一些mongo类,这样我就不需要连接(相当标准的东西)但是下面的代码给了我一些问题: when(dbCollection.find(isA(DBObject.class))).thenReturn(dbCursor); 运行这个得到我: org.mockito.exceptions.misusing.InvalidUseOfMatchersException: 参数匹配器的使用无效! 0匹配预期,1记录: at … GridFileManagerTest.beforeClass(GridFileManagerTest.java:67) 如果匹配器与原始值组合,则可能发生此exception: //错误:someMethod(anyObject(),“raw String”); 使用匹配器时,所有参数都必须由匹配器提供。 例如: //正确: someMethod(anyObject(),eq(“by matcher”)); 有关更多信息,请参阅Matchers类的javadoc。 如果我这样做: when(dbCollection.find(mock(DBObject.class))).thenReturn(dbCursor); 它不再有这个问题。 这似乎没有实现我想要的 – 我想在使用DBObject类型的对象调用方法时返回值。 思考?

java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:1

我正在学习Java,我不知道这里有什么问题。 为什么会发生这种错误? 我没有看到任何错误,直到我在第二个“for”循环之前写入“count = 0”行时才实际工作。 这是错误:java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:1 这就是错误发生的地方: if(mots.get(j).startsWith(searchPhrase.substring(0,1))){ 这是整个代码: import java.util.*; public class Test { public static void main(String[] args) { List mots = new ArrayList(); List saida = new ArrayList(); mots.add(“un”); mots.add(“deux”); mots.add(“trois”); String searchPhrase = “aaasdeuxctsundesle”; int count = 0; int countAnula = 0; int azul = 0; String anula = “-“; //Tem […]

线程“main”java.awt.AWTError中的exception:找不到辅助技术

如何解决这个错误? 线程“main”中的exceptionjava.awt.AWTError:未找到辅助技术: com.sun.java.accessibility.AccessBridge 在java.awt.Toolkit.loadAssistiveTechnologies(Toolkit.java:775) 在java.awt.Toolkit.getDefaultToolkit(Toolkit.java:861) 在java.awt.Window.getToolkit(Window.java:1127) 在java.awt.Window.init(Window.java:369) 在java.awt.Window。(Window.java:407) 在java.awt.Frame。(Frame.java:402) 在java.awt.Frame。(Frame.java:367) 在javax.swing.JFrame。(JFrame.java:163) 在FirstJavaProject。(FirstJavaProject.java:7) 在FirstJavaProject.main(FirstJavaProject.java:5) 它发生在执行以下程序期间: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class TenButtons extends JFrame{ JButton [] btns= new JButton[10]; public static void main(String args[]){ new TenButtons(); } public TenButtons(){ this.setSize(500,500); this.setTitle(“10 Buttons”); this.setLayout(new GridLayout(5,2)); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); for(int i=0; i<btns.length; i++){ btns[i]=new JButton("Button "); this.add(btns[i]); } […]

java:IllegalStateException – 尚未创建缓冲区

我的服务器中有一个奇怪的例外。 相同的应用程序(java,swing)在几台服务器上运行。 每台服务器都运行双监视器。 相同的jre版本(jre 6版本24)所有这些都在相当的CPU /内存消耗。 只有其中一个 – 当我将我的应用程序从一个监视器拖到另一个监视器时,它会抛出一个java.lang.IllegalStateExceptionexception。 我在下面附上了完整的例外情况。 有谁有想法吗 ? 谢谢。 而现在,例外: java.lang.IllegalStateException: Buffers have not been created at sun.awt.windows.WComponentPeer.getBackBuffer(Unknown Source) at java.awt.Component$FlipBufferStrategy.getBackBuffer(Unknown Source) at java.awt.Component$FlipBufferStrategy.updateInternalBuffers(Unknown Source) at java.awt.Component$FlipBufferStrategy.revalidate(Unknown Source) at java.awt.Component$FlipBufferStrategy.revalidate(Unknown Source) at java.awt.Component$FlipBufferStrategy.getDrawGraphics(Unknown Source) at javax.swing.BufferStrategyPaintManager.prepare(Unknown Source) at javax.swing.BufferStrategyPaintManager.paint(Unknown Source) at javax.swing.RepaintManager.paint(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source) at sun.awt.SunGraphicsCallback.runOneComponent(Unknown […]

java.lang.ClassFormatError:类文件末尾的额外字节

当我尝试运行这个程序时,我遇到了一个奇怪的错误。 该类编译成多个.class文件,我上周编译它(编辑之前)就好了。 但是现在,我看到了这个: Exception in thread “main” java.lang.ClassFormatError: Extra bytes at the end of class file blah/hooplah/fubar/nonsense/IndexId$Transaction 从我看来,Java 6 build 1.5可以修复它,因为它允许类文件末尾的额外字节(我认为),但我宁愿使用build 1.6。 我在Windows上进行编辑,然后将.java文件FTP到OpenVMS机器上,然后编译它们。 在编译之后,我将.class文件移动到一个目录中,该目录是通过爆炸前一个jar文件然后重新jar。 关于这是如何发生或如何解决它的任何明确的想法?

沮丧地抛出通用exception?

为什么不鼓励抛出generics(java.lang.Exception)exception,当它通常足以处理方法中的大多数条件失败时? 我理解,如果一个方法可以抛出多种类型的exception,那么抛出exception的特定子类可能会略微澄清处理,但在一般的失败/成功情况下,我认为Exception的function绰绰有余。

为什么必须在类定义中写抛出exception?

来自C#,我只是没有得到在类/方法定义之后写的’抛出exception’: public void Test() throws Exception 你要写这个吗? 如果你不这样做怎么办? 如果我调用具有此符号的方法,是否必须捕获它?

在Java中抛出多个exception

有没有办法在java中抛出多个exception?

Checked和Unchecked Exptions如何在Java中运行?

阅读本书中的例外情况,我发现了这样的说法: 编译器在编译时检查已检查的exception。 和 编译器不会在编译时检查未经检查的exception。 因此,如果我们也可以说IOException或SQLException位于Checked Exceptions类树下面。 java编译器如何知道会出现exception,而且IllegalArgumentException也没有,因为我的理解可能会 保留在代码中。 此外,确定必须获得Checkedexception并且不是Unchecked意味着什么呢?