इन दो साधारण नमूनों को चलाने के दौरान मुझे कंसोल पर मुद्रित त्रुटि संदेश क्यों मिलता है?पावरशेल 2.0 और अपवादों को कैसे संभालें?
प्राप्त करें-WmiObject: मुझे लगता है कि मैं "त्रुटि परीक्षण :)" के insted कंसोल पर मुद्रित चाहते RPC सर्वर उपलब्ध नहीं है। (HRESULT से अपवाद: 0x800706BA) लाइन पर: 3 चार: 15 + Get-WmiObject < < < < -ComputerName possibly.nonexisting.domain.com -Credential (Get-क्रेडेंशियल) कक्षा Win32_logicaldisk + CategoryInfo: InvalidOperation: (:) [Get-WmiObject], COMException + FullyQualifiedErrorId: GetWMICOMException, Microsoft.PowerShell.Commands.GetWmiObjectCommand
या
शून्य से विभाजित करने का प्रयास किया। लाइन पर: 3 चार: 13 + $ i = 1/< < < + CategoryInfo: NotSpecified: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId: RuntimeException
पहले उदाहरण:
try
{
$i = 1/0
Write-Host $i
}
catch [Exception]
{
Write-Host "Error testing :)"
}
दूसरा उदाहरण:
try
{
Get-WmiObject -ComputerName possibly.nonexisting.domain.com -Credential (Get-Credential) -Class Win32_logicaldisk
}
catch [Exception]
{
Write-Host "Error testing :)"
}
बहुत बहुत धन्यवाद!
तो यदि $ ErrorActionPreference 'जारी रखें' (जो डिफ़ॉल्ट है) पर सेट है तो आपको केवल त्रुटि संदेश मुद्रित किया गया है और स्क्रिप्ट मानक जारी है? – Primoz
और यदि $ ErrorActionPreference 'स्टॉप' पर सेट है तो स्क्रिप्ट निष्पादन पहले अनचाहे अपवाद पर बंद हो जाएगा? – Primoz
हां, बिल्कुल।निजी तौर पर, मुझे यह डिफ़ॉल्ट विकल्प उलझन में और थोड़ा खतरनाक लगता है: इससे अप्रत्याशित निरंतरताएं हो सकती हैं। मैं डिफ़ॉल्ट रूप से 'रोक' पसंद करूंगा, और यही वह है जो मैं अपने पीएस प्रोफाइल में पहले करता हूं। –