标签: swallowed-exceptions

为什么优秀的程序员有时会默默地吞下异常?

我知道它是邪恶的,但我已经看到一个好程序员编写的代码中的吞没异常.所以我想知道这种不良做法是否至少有一个积极的意义.

换句话说,这很糟糕,但为什么优秀的程序员在极少数情况下会使用它呢?

try
{
    //Some code
}
catch(Exception){}
Run Code Online (Sandbox Code Playgroud)

language-agnostic exception-handling swallowed-exceptions

37
推荐指数
8
解决办法
1万
查看次数

是什么导致WPF应用程序中的InvalidDeploymentException?

我开发了一个WPF应用程序,当我在调试模式下启动它时,我在输出中看到以下内容:

'WpfApplication1.vshost.exe'(Managed(v2.0.50727)):已加载'C:\ WINDOWS\assembly\GAC_MSIL\System.Deployment\2.0.0.0__b03f5f7f11d50a3a\System.Deployment.dll',已加载符号.System.Deployment.dll中发生类型为"System.Deployment.Application.InvalidDeploymentException"的第一次机会异常附加信息:未设置应用程序标识.

如果我在另一个WPF应用程序中使用此应用程序中的控件,则输出中有7个此类消息.不过,该应用程序运行正常.

你能解释一下抛出这些异常的原因吗?我发现该方法ApplicationDeployment.get_CurrentDeployment引发了它们.在MSDN中写道,当您"试图从非ClickOnce应用程序调用此静态属性时"出现此异常.我无法理解它的含义.

我发现类似的帖子InvalidDeploymentException - 没有设置应用程序标识但是没有这个问题的答案.

.net wpf exception swallowed-exceptions

21
推荐指数
1
解决办法
2万
查看次数

如何在Clojurescript中捕获任何Javascript异常?

在我的通信层中,我需要能够捕获任何javascript异常,将其记录下来并像往常一样继续.在Clojurescript中捕获异常的当前语法规定我需要指定被捕获的异常的类型.

我试图在catch表单中使用nil,js/Error,js/object,它没有捕获任何javascript异常(可以将字符串作为对象的类型).

我很感激任何提示如何在Clojurescript中本地完成.

error-handling interop swallowed-exceptions clojurescript

21
推荐指数
2
解决办法
1万
查看次数

有没有办法强制JUnit在任何未经检查的异常上失败,即使被吞下也是如此

我正在使用JUnit为没有单元测试的遗留代码编写一些更高级别的测试.

这些代码中的大部分"吞噬"了各种未经检查的异常,例如NullPointerExceptions(例如,仅通过打印堆栈跟踪并返回null).因此,即使在较低级代码中的各个点处存在级联灾难,单元测试也可以通过.

有没有办法让第一个未经检查的异常测试失败,即使它们被吞下了?

我能想到的唯一选择是编写一个自定义JUnit包装器,重定向System.err然后分析输出异常.

java junit unit-testing swallowed-exceptions

6
推荐指数
1
解决办法
2165
查看次数

PowerShell对扩展属性的调用无提示失败(通过Update-TypeData添加)

我的问题是:

  • 为什么这个错误没有被抛到代码中?
  • 如何让错误被抛到代码中?
  • 在哪里/我怎么能自己解决这个问题?/这个"功能"的文档在哪里?

    Function demo_problem
    {
        describe_global_error_variable
        $ret_value = "be loud please".extended_property
        write-host "returned a value=[$ret_value]."
        describe_global_error_variable
    }
    
    
    Function describe_global_error_variable
    {
        $cnt = $Error.Count
        write-host "`$Error .Count=[$($cnt)]." 
        $i=0
        while ($i -lt $cnt) {
            write-host "`$Error[$i].Exception.Message=[$($Error[$i].Exception.Message)]"
            $i += 1
            }
    }
    
    $script_block_throws = { 
            write-host "at beginning of script_block for script_block_throws.  `$this=[$this]."
            1/0
            return $true
            write-host "at end of script_block for script_block_throws.  `$this=[$this]."
        }
    
    $script_block_try_catch_throw = { 
            write-host "at beginning of script_block for script_block_try_catch_throw.  `$this=[$this]."
            try
            {
                1/0
                return $true …
    Run Code Online (Sandbox Code Playgroud)

powershell extension-methods exception swallowed-exceptions

2
推荐指数
1
解决办法
323
查看次数

从MATLAB调用C ++可执行文件时如何绕过错误对话框?

我需要从forMATLAB中的循环运行C ++可执行文件。我为此编写了以下代码,

EqNumbers = [17 18 20 21 22 23];

for i = 1:length(EqNumbers)

    EqNumber = EqNumbers(i);
    WriteRunE_File(EqNumber);

    filename=['RunE_1.tcl'];
    system(['OpenSees.exe<',filename]);

end
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,它运行良好,但是有时会出现调试错误(如下图所示)。它提示我采取措施,如果我按“中止”按钮,则程序将继续进行下一次迭代。我只想使此过程自动化,对我来说,每次都无法手动按“中止”按钮,因为该程序中有1000多次迭代。

在此处输入图片说明

我尝试使用try-catch end以下方法,但没有达到目的。

EqNumbers = [17 18 20 21 22 23];


for i = 1:length(EqNumbers)
    try
        % Code to be executed goes here.

        EqNumber = EqNumbers(i);
        WriteRunE_File(EqNumber);

        filename=['RunE_1.tcl'];
        system(['OpenSees.exe<',filename]);
    catch
        disp('An error occurred in Equke');
        disp('Execution will continue.');
    end

end
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种方法来绕过错误消息或自动按“中止”按钮。这样程序将自动移至下一个迭代。

注意:

我无权访问C ++源代码(我所拥有的都是可执行文件),因此无法更新的值citaR。这就是为什么我要在MATLAB中寻找解决方法。

c++ matlab dialog ui-automation swallowed-exceptions

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