ErrorRecord์ ํ์ฌ ํ์์ ๊ฐ๋ฐ์์๊ฒ ์ถฉ๋ถํ ์ ์ฉํ์ง ์์ผ๋ฉฐ ๋๋ฌด ๋ง์ด ์คํ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์ผ๋ฐ ์ต์ข
์ฌ์ฉ์๋ฅผ ์ํ ์ฝํ
์ธ . ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ์์ ๊ฒฐ๊ตญ RFC๊ฐ ๋์ง๋ง ๋จผ์ ์ฌ๊ธฐ์์ ๋
ผ์ํ ์ ์์ต๋๋ค. ์๋ง๋ ํ์์ ์์ธํ ์ ๋๋ ์ฌ์ฉ์๊ฐ ์ค์ ํ ์ ์์ต๋๋ค. ErrorRecord์ ํน์ ๋์๋ฌธ์ ํ์ ๋ฌธ์ ๋ ์์ต๋๋ค.
# part 1
PS C:\Users\slee\repos\PowerShell> 1/0
# part 2
PS C:\Users\slee\repos\PowerShell> $error[0] | fl
# part 1
# not sure what a good message would be for end users, but keeping it simple
Attempted to divide by zero.
At line:1 char:1
+ 1/0
# part 2 (requires -f)
PS C:\Users\slee\repos\PowerShell> $error[0] | fl -f
Exception : System.Management.Automation.RuntimeException: Attempted to divide by zero. --->
System.DivideByZeroException: Attempted to divide by zero.
--- End of inner exception stack trace ---
at System.Management.Automation.IntOps.Divide(Int32 lhs, Int32 rhs)
at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1
arg1)
at System.Management.Automation.Interpreter.DynamicInstruction`3.Run(InterpretedFrame frame)
at
System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame
frame)
TargetObject :
CategoryInfo : NotSpecified: (:) [], RuntimeException
FullyQualifiedErrorId : RuntimeException
ErrorDetails :
InvocationInfo : System.Management.Automation.InvocationInfo
ScriptStackTrace : at <ScriptBlock>, <No file>: line 1
PipelineIterationInfo : {}
PSMessageDetails :
# part 1
Attempted to divide by zero.
At line:1 char:1
+ 1/0
+ ~~~
+ CategoryInfo : NotSpecified: (:) [], RuntimeException
+ FullyQualifiedErrorId : RuntimeException
# part 2
PS C:\Users\slee\repos\PowerShell> $error[0] | fl
Attempted to divide by zero.
At line:1 char:1
+ 1/0
+ ~~~
+ CategoryInfo : NotSpecified: (:) [], RuntimeException
+ FullyQualifiedErrorId : RuntimeException
Name Value
---- -----
PSVersion 6.0.0-beta
PSEdition Core
GitCommitId v6.0.0-beta.6
OS Microsoft Windows 10.0.16350
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
@SteveL-MSFT: ์ด๊ฒ์ ๋ณธ์ง์ ์ผ๋ก #3647์ ๊ดํ ๊ฒ์ ๋๋ค.
๋๋ ๊ฑฐ๊ธฐ์ ๋ญ๊ฐ๋ฅผ ๊ฒ์ํ๋ ค๊ณ ํ์ต๋๋ค. ๋์ ์ฌ๊ธฐ์์ ๊ณ์ํ์๊ฒ ์ต๋๊น?
์ ์ ์ผ๋ก ๋์ํฉ๋๋ค.
์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๋ฅผ ์ํ BTW, ์ ๋ Jeffrey์ ์ค๋๋ Resolve-ErrorRecord
(PSCX๋ก ๋ฐฐ์ก๋จ)์ ๊ฐ์ ๊ฒ์ด ๋ด์ฅ๋ ๊ฒ์ ๋ณด๊ณ ์ถ์ต๋๋ค. ์ด๊ฒ์ ๊ฐ๋ฐ์์๊ฒ ํจ์ฌ ๋ ๋ง์ (์ ์ฉํ) ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
4:5ms> Resolve-ErrorRecord
PSMessageDetails :
Exception : System.Management.Automation.RuntimeException: Attempted to divide by zero. --->
System.DivideByZeroException: Attempted to divide by zero.
--- End of inner exception stack trace ---
at System.Management.Automation.IntOps.Divide(Int32 lhs, Int32 rhs)
at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1
arg1)
at System.Management.Automation.Interpreter.DynamicInstruction`3.Run(InterpretedFrame frame)
at
System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame
frame)
TargetObject :
CategoryInfo : NotSpecified: (:) [], RuntimeException
FullyQualifiedErrorId : RuntimeException
ErrorDetails :
InvocationInfo : System.Management.Automation.InvocationInfo
ScriptStackTrace : at <ScriptBlock>, <No file>: line 1
PipelineIterationInfo : {}
MyCommand :
BoundParameters : {}
UnboundArguments : {}
ScriptLineNumber : 1
OffsetInLine : 1
HistoryId : -1
ScriptName :
Line : 1/$x
PositionMessage : At line:1 char:1
+ 1/$x
+ ~~~~
PSScriptRoot :
PSCommandPath :
InvocationName :
PipelineLength : 0
PipelinePosition : 0
ExpectingInput : False
CommandOrigin : Internal
DisplayScriptPosition :
Exception at nesting level 0 ---------------------------------------------------
ErrorRecord : Attempted to divide by zero.
WasThrownFromThrowStatement : False
Message : Attempted to divide by zero.
Data : {System.Management.Automation.Interpreter.InterpretedFrameInfo}
InnerException : System.DivideByZeroException: Attempted to divide by zero.
TargetSite : System.Object Divide(Int32, Int32)
StackTrace : at System.Management.Automation.IntOps.Divide(Int32 lhs, Int32 rhs)
at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0
arg0, T1 arg1)
at System.Management.Automation.Interpreter.DynamicInstruction`3.Run(InterpretedFrame
frame)
at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(Interp
retedFrame frame)
HelpLink :
Source : System.Management.Automation
HResult : -2146233087
Exception at nesting level 1 ---------------------------------------------------
Message : Attempted to divide by zero.
Data : {}
InnerException :
TargetSite :
StackTrace :
HelpLink :
Source :
HResult : -2147352558
@mklement0 ๋น์ ์ ์์์๋ก ์ด๊ฒ์ ํด๊ฒฐํ๊ฒ ์ต๋๋ค https://github.com/PowerShell/PowerShell/issues/3647
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ ์ ์ผ๋ก ๋์ํฉ๋๋ค.
์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๋ฅผ ์ํ BTW, ์ ๋ Jeffrey์ ์ค๋๋
Resolve-ErrorRecord
(PSCX๋ก ๋ฐฐ์ก๋จ)์ ๊ฐ์ ๊ฒ์ด ๋ด์ฅ๋ ๊ฒ์ ๋ณด๊ณ ์ถ์ต๋๋ค. ์ด๊ฒ์ ๊ฐ๋ฐ์์๊ฒ ํจ์ฌ ๋ ๋ง์ (์ ์ฉํ) ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.