Microsoft Virtualization Discussions

try catch help

thepunisher

This is my first foray into trying to trap a specific error in powershell with try/catch and I am stuck.  I can't seem to figure out what exactly I need to use to trap this error.  I have a loop that is checking a collection of filers, this section of the code is looking for un-failed, un-owned disks.  Four of our filers have hardware ownership rather than software ownership so this command fails when run against them.  I want to trap for this specific error and just simply continue.  The code below is as far as I have gotten, I can't even trap the error and get it to write to the console.  What am I doing wrong?

I used this command to get the Sytem.InvalidOperationException; $error[0].Exception.psobject.typenames[0]

try          {Get-NaDiskOwner -Controller $controller | Where-Object {$_.Owner -lt '' -and $_.IsFailed -eq 0}}

  catch[System.InvalidOperationException]{"An Error Occurred"}

This is the error;

Get-NaDiskOwner : SANOWN not enabled.

At C:\Users\M00627~1.MFA\AppData\Local\Temp\Untitled5.ps1:4 char:16

+ Get-NaDiskOwner <<<<  -Controller $controller | Where-Object {$_.Owner -lt '' -and $_.IsFailed -eq 0}}

    + CategoryInfo          : InvalidOperation: (rchnas02n1:NaController) [Get-NaDiskOwner], ECIFSSHARINGVIOLATION

    + FullyQualifiedErrorId : ApiException,DataONTAP.PowerShell.SDK.Cmdlets.Disk.GetNaDiskOwner

1 ACCEPTED SOLUTION

cknight

Try this:

Get-NaDiskOwner -Controller $controller -ErrorAction SilentlyContinue

The Toolkit throws mostly non-terminating errors, so try/catch isn't going to help unless you set the error action to "Stop".

View solution in original post

2 REPLIES 2

cknight

Try this:

Get-NaDiskOwner -Controller $controller -ErrorAction SilentlyContinue

The Toolkit throws mostly non-terminating errors, so try/catch isn't going to help unless you set the error action to "Stop".

View solution in original post

thepunisher

Ok, that explains why I couldn't get try/catch to work.  I will most likely use this syntax and then check the variable $err for anything other than the SANOWN error.  Thanks Clinton.

Get-NaDiskOwner -Controller $controller -ErrorAction SilentlyContinue -ErrorVariable err | Where-Object {$_.Owner -lt '' -and $_.IsFailed -eq 0}

Announcements
NetApp on Discord Image

We're on Discord, are you?

Live Chat, Watch Parties, and More!

Explore Banner

Meet Explore, NetApp’s digital sales platform

Engage digitally throughout the sales process, from product discovery to configuration, and handle all your post-purchase needs.

NetApp Insights to Action
I2A Banner
Public