如何设置Eclipse以在发生异常时停止.
我有一个Eclipse断点设置来打破异常.在下面的代码示例中,我遇到的问题是Eclipse尝试打开Integer源代码.有没有办法让我的代码示例中显示的调试器中断?如果我向下移动堆栈跟踪,我将到达这一行,如果有一种方法可以在没有"Source not found"窗口的情况下执行此操作,那就太好了.
这可以在Visual Studio中完成,所以它让我疯狂,无法在Eclipse中找到这样做的方法.
package com.test;
public class QuickTest
{
public static void main(String[] args)
{
try
{
test();
}
catch(NumberFormatException e)
{
System.out.println(e.getMessage());
}
}
private static void test()
{
String str = "notAnumber";
Integer.parseInt(str);//<----I want debugger to stop here
}
}
Run Code Online (Sandbox Code Playgroud)
我在Java Web应用程序中有一个线程导致java.lang.OutOfMemoryError:Java堆空间异常,但try/catch块没有捕获错误.
示例代码:
private void doSomeWork()
{
try
{
processData(); //Causes OutOfMemoryError
System.out.println("This line does not execute");
}
catch (Exception e)
{
System.out.println("Exception. This line does not execute.");
//Log error
}
finally
{
System.out.println("finally. This line does execute");
System.out.println("Thread name: " + Thread.currentThread().getName());
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
finally. This line does execute Thread name: _Worker-8 Exception in thread "_Worker-8" java.lang.OutOfMemoryError: Java heap space ...
背景:
我最近接手了这个Java项目,我正在努力加快Java和这个项目的速度.我是C#开发人员,所以我还不熟悉这个项目或Java.我知道我可以使用-Xmx设置修复错误,但我有兴趣捕获此错误,以便我可以记录它.错误未显示在任何日志文件中,并且输出在Eclipse中以调试模式显示在控制台中.
是否有必要f在启动float类型变量时指定.
float a =3455.67f;
Run Code Online (Sandbox Code Playgroud)
如果我宣布并启动它
float a = 3455.67;
Run Code Online (Sandbox Code Playgroud)
然后会发生什么?
所以我在上面的问题链接的问答中有以下代码.
public abstract class DeliveryStrategy { }
public class ParcelDelivery : DeliveryStrategy { }
public class ShippingContainer : DeliveryStrategy { }
public abstract class Order<TDelivery> where TDelivery : DeliveryStrategy
{
private TDelivery delivery;
protected Order(TDelivery delivery)
{
this.delivery = delivery;
}
public TDelivery Delivery
{
get { return delivery; }
set { delivery = value; }
}
}
public class CustomerOrder : Order<ParcelDelivery>
{
public CustomerOrder()
: base(new ParcelDelivery())
{ }
}
public …Run Code Online (Sandbox Code Playgroud)