当前位置: 首页 > 知识库问答 >
问题:

Write-Error在类方法Powershell中使用时不会产生有用的信息

松高爽
2023-03-14

我使用了一个带类和不带类的方法,写错误似乎产生了不同的输出。在类的情况下,它不指定函数,行号总是1,1

function oper1() {
    Try {
        [string] $cmd = ".\some_exe_which_does_not_exist.exe"
        iex $cmd 
    }
    Catch {
        Write-Error $_.Exception.Message
    }
}

oper1

以上输出:

class Operator {
    [void] oper1() {
        Try {
            [string] $cmd = ".\some_exe_which_does_not_exist.exe"
            iex $cmd 
        }
        Catch {
            Write-Error $_.Exception.Message
        }
    }
}

[Operator] $operator = New-Object Operator
$operator.oper1()

类内方法的这种行为的原因是什么?

共有1个答案

潘佐
2023-03-14

另外:invoke-expression(IEX)一般应该避免;绝对不要用它来调用外部程序--直接调用它就行了,如下所示。

在PowerShell类方法中:

>

  • 不要使用write-error,因为类不是用来发出非终止错误的。

      null
      null

    这是您代码的更正版本。

    class Operator {
        [void] oper1() {
            Try {
                # Try to invoke a non-existent executable.
                & ".\some_exe_which_does_not_exist.exe"
            }
            Catch {
                # Re-throw the error.
                # Alternatively, don't use try / catch, but the error
                # then only aborts the method call, not the entire script.
                Throw
            }
        }
    }
    
    $operator = [Operator]::new()
    $operator.oper1()
    

  •  类似资料:
    • 我试图写一个简单的例子,在CDI 2.0的JavaSE中使用生产者方法,但是遇到了一个问题。 以下是制作人: 这是注射点: 我通过如下方式引导运行示例: 我有一颗豆子。xml文件。 例外情况是: 线程“main”组织中出现异常。jboss。焊接例外情况。DeploymentException:WELD-001408:在注入点[BackedAnnotatedField]@InjectPrivate

    • 问题内容: 是否有一个令人信服的理由不仅仅用于确定调用方法的类,名称和参数列表?不用于调试目的。它在函数名称中带有单词“ debug”,这使我感到有点脏,但是它适合我需要做的事情(可以在许多地方调用一个函数,需要从另一个系统调用调用方法)。可行,但这还是个坏主意吗?如果是这样,为什么? 问题答案: 它确实感觉有点脏,但是正如在许多地方有充分的文献记载,论断和殴打一样,PHP并不是为优雅而设计的系统

    • 问题内容: 我有这个代码: 我的问题是我不明白为什么 Test 3 可以正常工作(它打印并且不产生),而 Test 4却 抛出了。正如你可以看到测试 1 和 2 ,和是平等的和。 Java 7和8中的行为相同。 问题答案: 您必须仔细查看正在调用的重载: 正在调用。即使提供了null参数,也不会抛出“ even”。 正在调用,因为的值类型为,需要进行拆箱转换。既然是,那就是该值的拆箱-而不是-引发

    • 下面的错误会不时弹出,但并不总是在同一个地方。不太清楚为什么。有线索吗?这里的完整代码:完整代码 文件“/users/davidkasapchuk/pycharmprojects/test/homedepotfridges.py”,第257行,在price=item.find_element_by_class_name('product-display-price')文件“/library/fra

    • 本文向大家介绍在PowerShell中$ error变量的用途是什么?,包括了在PowerShell中$ error变量的用途是什么?的使用技巧和注意事项,需要的朋友参考一下 PowerShell中的错误变量用于查看当前PowerShell会话中生成的错误。我们可以说$Error变量是存储所有错误的容器,并且最新的错误将首先显示。对于下面的示例,我们将$Errorview设置为Category视图

    • 问题内容: 今天,我第一次在“生产”模式下运行Node.js应用程序,并收到以下警告: 我只需要运行一个进程,但是应该使用什么呢?我希望我的会话驻留在RAM中以便快速访问。我还希望能够通过仅关闭Node应用程序来丢弃所有会话。 仅安装Redis,MongoDB或其他数据库来完成此简单任务似乎是过大的选择。我也不明白为什么不应该真正使用Node中包含MemoryStore? 问题答案: Memory