C#获取系统相关信息_详细异常信息

从用户的角度来说,当程序出现异常时只要有给点简单的提示就行.但从开发者的角度来说就需要非常详细的信息,这对追踪Bug很有用.异常相关的详细信息可以记录到日志文件中.这样你自己测试时比较方便点,而且做用户支持时也方便,如果用户碰到啥问题要他们把错误日志发过来就行.

异常处理语句通常的形式一般如下:

try

{

//some code

}

catch(Exception ex)

{

}

我们通常获取的提示信息是ex.Message,简单描述了下出现啥异常了.但ex里面还包括其他些详细的信息

ex.GetType().FullName.详细的异常名字,我们知道Exception是比较笼统的,还有些更详细的异常名字比如System.IndexOutOfRangeException

ex.Source 返回应用程序的名字

ex.TargetSite 返回是出异常的函数的名字

ex.StackTrace 这里面的信息比较多,有出错的函数名字,还有具体是哪一cs源文件中,并且详细到源代码中哪一行

除了这些信息外,有些时候可能还想知道版本号,程序运行的操作系统和硬件的相关信息.因为有时一些Bug可能只在某个操作系统中才出现.当然你能用其他方法知道,但通过写代码把这些信息收集起来更方便.

System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();//获取程序的版本号

电脑软件,硬件相关信息的获取

using System.Management; //先add reference,找到System.Mangement,点OK

string msg = string.Empty ;

ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT* From Win32_OperatingSystem");

ManagementObjectCollection queryCollection = query.Get();

foreach (ManagementBaseObject managementObject in queryCollection)

{

msg = managementObject["Caption"] + //操作系统名字,比如Microsoft Windows 7 Professional

managementObject["Version"] + //系统版本号,比如6.1.7601

managementObject["Manufacturer"] + //操作系统生产厂商,比如Microsoft Corporation

managementObject["csname"] + //电脑名,这个是自己随便取的

managementObject["WindowsDirectory"]; //系统安装目录,比如c:\Windows

}

query = new ManagementObjectSearcher("SELECT * From Win32_ComputerSystem");

queryCollection = query.Get();

foreach (ManagementObject managementObject in queryCollection)

{

msg += managementObject["Manufacturer"] + //电脑厂商,比如Dell Inc.

managementObject["model"] + //型号,比如OptiPlex 755

managementObject["SystemType"] + //cpu类型,比如x64-based PC,表示64位的cpu

managementObject["totalphysicalmemory"].ToString() + //内存大小

managementObject["Domain"] + //域名

managementObject["UserName"]; //电脑开机时的用户名

;

}

反正电脑软硬件相关的很多信息都可以通过类ManagementObjectSearcher去查看,比如硬盘,主板,网卡得一些信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值