我将远程服务放在一个单独的进程中,例如,在这个远程服务中,我调用了一个方法,该方法在发生错误时抛出自定义运行时异常。-我希望在UI中处理该异常。
但据我所知,我不能从一个进程到另一个进程抛出异常。这种情况的解决方案是什么?
更新:我得到了:
E/JavaBinder(1544): *** Uncaught remote exception! (Exceptions are not yet supported across processes.)
我无法找到可靠的消息来源,以确保我能够在__destruct()中抛出异常。
php文档就是这样写的。
试图从析构函数抛出异常(在脚本终止时调用)将导致致命错误。
但当我测试的时候
class A
{
public function __destruct()
{
throw new \Exception();
}
}
try {
$a = new A();
} catch(\Exception $x) {
var_dump($x);
}
这似乎不是真的。我通常抛出和捕获异常。那么,为什么医生有这条线?
编辑后马克贝克的回答:
我使用NSubsitute来模拟被测试的方法使用的类。我希望确保我的方法不会引发由其依赖关系引起的异常。
有没有一种方法可以强制一个模拟抛出一个异常,不管它的哪一个方法被调用?
我知道,如果将调用特定的方法,我可以“准备”模拟抛出异常。但是,我还需要检查这个准备好的方法是否被调用,以防止其他人在不更改单元测试的情况下更改代码。但这也意味着要开始测试我不想做的算法。
编辑:,因为我试图从RestSharp中模拟IRestClient,我至少找到了一种方法来为每个将返回任务的调用抛出异常--这对于我的用例来说已经足够了。也许我的问题不够具体,暗示了很多错误的解决方案。
var re
我在Windows 8上运行节点v4.2.0,我发现fs.mkdirSync()偶尔会抛出EPERM,没有明显的原因。
我成功地用这个测试代码重新创建了它,我将它保存在一个文件bug.js中。
var fs = require("fs");
var i;
for (i = 0; i < 100000; i += 1) {
fs.mkdirSync("xx");
fs.rmdirSync("xx");
}
这是我偶尔得到的痕迹:
C:\WIP>node bug
C:\WIP\bug.js:0
Error: EP
是否有可能知道某个异常是否可以在代码块中抛出?
前提:假设你正在处理一些旧的代码库,并且你有类似这样的东西。
try{
a lot of code that calls a bunch of other methods
}
catch (CustomException e){
some handling
}
我想知道try块中的哪些代码可以抛出这个异常。据我所知,没有什么东西会抛出它,这只是一段死代码。我知道这是由糟糕的代码设计造成的,但当使用真实的代码时,并不总是可以优先重构所有旧代码。
所以简而言之,有没有可能在编译时告诉我们try块中的任何东西是否真的抛出了异常?
(如果重要的话
我正在编写一个测试用例,以确保我的服务/存储库层按预期工作。我正在使用一个实体调用ISession.Save,该实体已经在一个单独的事务中持久化到数据库中。我希望Save抛出一个异常,因为这个实体并不是新的。相反,将一个新条目添加到数据库中,并更新实体的ID。
第一个问题:这是预期的吗?据我所知,它应该抛出一个异常,但我还没能在中显式地找到它。
下面是一些代码:
public class Dashboard
{
public int ID { get; set; }
}
// Dashboard.hbm.xml:
<class name="Dashboard"
我在IIS中有API。API工作得很好。但是,当我在10-15秒内发送40-90个查询时,API会抛出The remote server returned an error: (500) Internal Server Error异常。
如果我不每秒发送几个API查询,它就能正常工作。
起初,我的怀疑与SQL有关。因为同时,table select和table update操作是从同一个表中执行的。
如何防止IIS本身在一段时间后抛出500?