小编Cor*_*eyP的帖子

Eclipse中没有出现的try-with-resources中的异常自我抑制错误

我遇到了一个令人不安的情况,我希望Java抱怨(通过IllegalArgumentExceptionfrom Throwable.addSuppressed)两次抛出相同的异常,一次来自try-with-resources块,一次来自AutoCloseable类的close()例程.我在下面创建了一个简单的测试用例,突出了问题.

我使用以下代码运行JDK 1.7.0_65:

public class TestDoubleThrow {
    public static void main(String[] args) {
        class TestA implements AutoCloseable {
            RuntimeException e;
            public TestA(RuntimeException e) { this.e = e; }
            @Override public void close() { throw e; }
        }

        RuntimeException e = new RuntimeException("My Exception");
        try (TestA A = new TestA(e)) {
            throw e;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我通过命令行编译并运行上面的代码时,我得到了预期的结果,这个错误表明我试图自我抑制和异常:

[coreys terminal]$ java TestDoubleThrow.java ; java TestDoubleThrow
Exception in thread "main" java.lang.IllegalArgumentException: Self-suppression not permitted
    at …
Run Code Online (Sandbox Code Playgroud)

java eclipse suppression

5
推荐指数
1
解决办法
1267
查看次数

寻找一种强制在linux中进行简短读取的方法

我正在寻找一种在linux中生成短读取的方法,因此我可以对它们周围的处理代码进行单元测试.

我有许多方法,在较低级别调用pread/pread64从文件系统中的文件读取.这些设计用于处理发生短读取的情况(读取的字节数小于请求的数量).

我见过发生短读取的情况(跨网络文件系统).

理想情况下,我将能够创建一个允许读取N个字节的文件,然后将发生M字节的短读取,然后按预期进行正常读取.这将允许单元测试指向文件/文件系统.

谢谢!

c linux testing io

5
推荐指数
1
解决办法
143
查看次数

标签 统计

c ×1

eclipse ×1

io ×1

java ×1

linux ×1

suppression ×1

testing ×1