标签: throwable

271
推荐指数
5
解决办法
18万
查看次数

异常和错误之间的差异

我正在尝试更多地了解基本Java和不同类型的Throwables,有人能告诉我异常和错误之间的区别吗?

java exception throwable

162
推荐指数
6
解决办法
8万
查看次数

抓住Throwable是不好的做法?

赶上是不好的做法Throwable

例如这样的事情:

try {
    // Some code
} catch(Throwable e) {
    // handle the exception
}
Run Code Online (Sandbox Code Playgroud)

这是一种不好的做法还是我们应该尽可能具体?

java exception-handling throwable

100
推荐指数
10
解决办法
8万
查看次数

异常处理:抛出,抛出和Throwable

可以任你解释的区别是什么之间throw,throws以及Throwable和什么时候使用?

java exception-handling throw throwable throws

54
推荐指数
3
解决办法
5万
查看次数

什么时候应该使用Throwable而不是新的Exception?

鉴于:ThrowableException超级.

当我编写自己的"例外"读课文,我看到的例子Throwable中所使用catch的块和其他经文显示new Exception() 在正在使用catch块.我还没有看到何时应该使用每个的解释.

我的问题是,什么时候应该Throwable使用,什么时候应该new Exception()使用?

使用以下任一内部catchelse块内:

throw throwable;
Run Code Online (Sandbox Code Playgroud)

要么

throw new Exception();
Run Code Online (Sandbox Code Playgroud)

java exception throwable

41
推荐指数
4
解决办法
9万
查看次数

JUnit @Test期望注释不起作用

我有以下测试:

@Test(expected = IllegalStateException.class)
public void testKey() {
    int key = 1;
    this.finder(key);
}
Run Code Online (Sandbox Code Playgroud)

但是JUnit报告说,测试失败了,尽管它正如预期的那样抛出了IllegalStateException.

我是否必须配置其他内容才能运行?


我现在正在进行测试

@RunWith(Suite.class)
@SuiteClasses(Test.class)
public class TestSuite {

}
Run Code Online (Sandbox Code Playgroud)

就像在这个问题中,但仍然没有得到理想的结果.

当我删除test前缀时,我仍然收到错误.

我得说我用Eclipse运行这些测试,但它配置为使用JUnit 4 Runner.

java junit annotations exception throwable

33
推荐指数
4
解决办法
7万
查看次数

printStackTrace到java.util.logging.Logger

如何使用 java.util.Logger 打印整个堆栈跟踪?(没有恼人的Netbeans).

该问题应该最初指定保留 Java SE中.省略这个要求对我来说是一个错误.

-do-compile:
    [mkdir] Created dir: /home/thufir/NetBeansProjects/rainmaker/build/empty
    [mkdir] Created dir: /home/thufir/NetBeansProjects/rainmaker/build/generated-sources/ap-source-output
    [javac] Compiling 13 source files to /home/thufir/NetBeansProjects/rainmaker/build/classes
    [javac] /home/thufir/NetBeansProjects/rainmaker/src/model/TelnetEventProcessor.java:44: error: 'void' type not allowed here
    [javac]                 log.severe(npe.printStackTrace(System.out));
    [javac]                                               ^
    [javac] 1 error

BUILD FAILED
Run Code Online (Sandbox Code Playgroud)

代码有错误:

package model;

import java.util.Observable;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TelnetEventProcessor extends Observable {

    private static Logger log = Logger.getLogger(TelnetEventProcessor.class.getName());
    private String string = null;

    public TelnetEventProcessor() {
    }

    private void stripAnsiColors() {
        Pattern regex = …
Run Code Online (Sandbox Code Playgroud)

java nullpointerexception throwable java.util.logging printstacktrace

32
推荐指数
4
解决办法
6万
查看次数

在Java中扩展Throwable

Java允许您创建一个全新的子类型Throwable,例如:

public class FlyingPig extends Throwable { ... }
Run Code Online (Sandbox Code Playgroud)

现在,很少,我可以这样做:

throw new FlyingPig("Oink!");
Run Code Online (Sandbox Code Playgroud)

当然还有其他地方:

try { ... } catch (FlyingPig porky) { ... }
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  • 这是一个坏主意吗?如果是这样,为什么?
    • 如果这是一个坏主意,可以做些什么来阻止这种子类型?
    • 由于它不可预防(据我所知),可能导致什么灾难?
  • 如果这不是一个坏主意,为什么不呢?
    • 你怎么能从事可以做出有用的事情extends Throwable

拟议方案#1

真的想做这样的事情的场景具有以下属性:

  • "事件" 最终发生.这是预料之中的.它绝对不是一个Error,而且它什么也没Exception发生.
    • 因为它是预期的,所以会有一个catch等待它.它不会"滑倒"过去.它不会"逃避"任何catch一般Exception和/或任何尝试Error.
  • "事件" 极少发生.
  • 当它发生时,通常会有一个深层堆栈跟踪.

所以也许我现在很清楚我想说的FlyingPig是:这是一个详尽的递归搜索的结果.

要搜索的对象存在:它只是在大海中找到它的问题,即搜索空间.搜索过程很长,因此相对昂贵的异常处理成本可以忽略不计.事实上,传统的控制流构造使用boolean isFound标志的替代方案可能更昂贵,因为必须在整个搜索过程中连续检查,最有可能在递归的每个级别.此检查将在99.99%的时间内失败,但绝对有必要传播终止条件.在某种程度上,虽然有效,但检查效率低下!

通过简单的 …

java exception-handling throwable

28
推荐指数
3
解决办法
1万
查看次数

在私有实用程序类构造函数中使用的首选Throwable是什么?

Effective Java(第二版),第4项,讨论使用私有构造函数来强制执行非实例化.这是本书中的代码示例:

public final class UtilityClass {
    private UtilityClass() {
        throw new AssertionError();
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,AssertionError似乎不是正确的抛出.没有任何东西被"断言",这就是API如何定义AssertionError的使用.

Throwable在这种情况下,通常会有不同的情况吗?通常只会抛出一个Exception带有消息的将军吗?或者为此编写自定义是否常见Exception

这是非常微不足道的,但我认为从形式和标准的角度来看,我只是对它感到好奇.

java coding-style throwable

27
推荐指数
3
解决办法
6096
查看次数

与Java中的Exception vs Throwable相关联的开销

我知道

throw new Exception();
Run Code Online (Sandbox Code Playgroud)

有一个相当大的开销,因为它创建了一个完整的堆栈跟踪等
是否

throw new Throwable();
Run Code Online (Sandbox Code Playgroud)

出现同样的问题?这种行为是继承的,还是抛出Throwable有一个较小的(o no)开销?

编辑
分析师的角度来看,插入错误密码的用户是程序正常执行顺序的例外.所以,如果我有:

public Session newSession() {  
  validate_user_and_password();   
}
Run Code Online (Sandbox Code Playgroud)

分析师的角度来看,抛出UserNotValidException听起来是正确的.如果您的代码具有相当好的抽象,则
返回null或者0听起来不正确.我只是想知道我是否可以在代码中实现这一点,或者如果我不得不将它留给理论.

编程视点异常与分析师视点异常之间存在很大差异.

注意:我给出了一个非常简单而愚蠢的例子,这不是我的情况.
注2:我知道返回null将是普通的事情,但我需要有适当的抽象和OO代码,而且,就个人而言,我认为没有任何损害.

java exception throwable

27
推荐指数
2
解决办法
5万
查看次数