.Net类的一个属性,当Getter里出现异常的时候,powershell中没有任何错误信息。


PowerShell交流中心分类: Powershell基础.Net类的一个属性,当Getter里出现异常的时候,powershell中没有任何错误信息。
0
小旗 asked 9 年 ago

自己定义了一个简单的类
如下
public class MyClass
    {
        private int number = 0;
        public int Number
        {
            get
            {
                if (this.number > 10)
                {
                    throw new ArgumentOutOfRangeException();
                }
                else
                {
                    return number;
                }
            }
            set
            {
                this.number = value;
            }
        }
    }
当这个属性大于10的时候,getter里后throw一个exception。
然后在powershell中执行
PS C:\> $test = New-Object MyCmdlet.MyClass
PS C:\> $test.Number
0
PS C:\> $test.Number = 11
PS C:\> $test.Number
PS C:\> $test
Number
——

没有任何错误信息,这个属性也没有任何值。VS debug的时候,代码确实是抛出异常了。但是不知道这个异常哪去了?

Mooser Lee 管理员 replied 9 年 ago

这个问题确实很奇怪,我给PowerShell MVP 组发邮件了,请耐心等待!

0 Answers
2
Mooser Lee 管理员 answered 9 年 ago

Joel Bennett :


That’s by design. In PowerShell, exceptions in properties are always hidden.

Jason Shirk

If you want to see the exceptions, you’ll need to use method syntax:
$test.get_Number()

小旗 replied 9 年 ago

了解了,非常感谢