返回ManagementObjectCollection所以我有一个从ServerConnectionTools类调用的方法。它应该返回一个ManagementObjects集合,但是,如果服务器为什么试图查询不可访问,它会抛出一个COMException异常。无法从方法
我尝试将连接放置在try/catch内的作用域,但这意味着如果它在赋值之前失败,则不会设置ret值。
什么是最好的处理方法?直到现在,我一直试图让功能工作,而不是专注于错误处理,所以我仍然在学习绳索!
我也不知道我是否应该在COMException中引发一个事件来通知调用类连接失败,或者以其他方式处理它......我认为在调用类中捕获COMException会是错误的方法?
public ManagementObjectCollection GetServicesList()
{
try
{
// Connect our scope to the actual WMI scope
this.Scope.Connect();
// Query system for Eclipse Services
ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_Service WHERE Caption LIKE 'xxx%'");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(this.Scope, query);
ManagementObjectCollection ret = searcher.Get();
}
catch (COMException ex)
{
ServerConnectionFailure?.Invoke(this, null);
}
return ret;
}
任何想法都是最受欢迎的!
干杯 戴夫try
块外的ret
如果你不想在调用类捉收到COMException,你可以扔掉你在catch喜欢的任何异常(收到COMException前)块。 – 3per