Мой скрипт Powershell генерирует исключение, но не дает мне номер строки, в которой генерируется исключение:
The process cannot access the file 'C:/path/to/foo.txt' because it is being used by another process.
+ CategoryInfo : NotSpecified: (:) [Set-Content], IOException
+ FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.SetContentCommand
+ PSComputerName : localhost
Я думаю, что лучшая практика здесь - это реорганизовать скрипт для использования try / catchблоки сужаются именно там, где выдается исключение Set-Content
- но в этом случае, из-за размера / области действия скрипта, я пытаюсь избежать этой опции.
Вместо этого я надеюсь на небольшое нисходящее решение - например, возможность вызывать скрипт с дополнительной детализацией таким образом, чтобы Powershell печатал номера строк в трассировках стека (почти уверен, что Python делает это по умолчанию).
Поддерживает ли это Powershell 3.0 изначально?
EDIT : Принятый ответ на этот вопрос включаетподход try / catch, о котором я упоминал, не является моим предпочтительным подходом.Опять же, есть ли способ заставить PowerShell сообщать номера строк, когда исключения вызываются без обязательной попытки / перехвата?Должен ли я обернуть весь скрипт в общую попытку / поймать?Должен ли я вызвать скрипт с каким-нибудь флагом --verbose
?Powershell 3.0 поддерживает что-нибудь подобное?