Итак, у меня есть запланированное задание, которое я выполняю по требованию.
Есть ли способ заставить задачу завершиться в случае возникновения ошибки?
Когда он работает успешно, статус не обновляется сам по себе, я должен обновить вручную. Однако, когда вызываемая программа генерирует исключения, задача остается в рабочем состоянии. Казалось бы, я хочу, чтобы он просто остановился и зарегистрировал исключение.
В моем скрипте powershell я вызываю метод веб-API на сервере разработки. Как это. Обратите внимание, что обработка исключений только пытается выявить любые проблемы с помощью скрипта, вызывающего веб-запрос, а не самого веб-API. Веб-приложение имеет свою собственную обработку исключений и ведение журнала.
try {
$order_api = "http://dev-server.testserver.com/api/orderpipeline/Runfolder";
$order_response = Invoke-WebRequest -Uri $order_api -UseDefaultCredentials -ContentType "application/json" -Method Post -Body $jsonParams -TimeoutSec 10000;
}
catch{
# Capture exception detail
$err_message = $_.Exception | format-list -force | Out-String;
$log_message = $PSCommandPath + "`r`n" + " Something went wrong trying to invoke web request api, exception follows: " + "`r`n" + $err_message;
# Write to application event log
New-EventLog –LogName Application –Source “Order pipeline Script”
Write-EventLog –LogName Application –Source “Order pipeline Script” –EntryType Error –EventID 1 –Message $log_message
}}
Я регистрирую исключение в веб-приложении, поэтому, когда возникает исключение, я заметил, что задача все еще выполняется, и мне пришлось принудительно остановить ее. Это не то, что я действительно хочу сделать в производственной системе.
Как я могу заставить задачу остановиться, если вызываемая программа встречает исключение?
В скрипте powershell я также делаю одну попытку: