ამის გამოსასწორებლად მოძებნეთ არასწორი სინტაქსი
- თუ Try-Catch არ მუშაობს PowerShell-ზე, თქვენ უნდა შეამოწმოთ არასწორი სინტაქსი და შეცდომის მოქმედების მნიშვნელობები.
- ეს სახელმძღვანელო აგიხსნით პრობლემის გადაჭრის სხვადასხვა გზებს.
Xდააინსტალირეთ ჩამოტვირთვის ფაილზე დაწკაპუნებით
- ჩამოტვირთეთ Restoro PC Repair Tool რომელიც მოყვება დაპატენტებულ ტექნოლოგიებს (ხელმისაწვდომია პატენტი აქ).
- დააწკაპუნეთ სკანირების დაწყება იპოვონ Windows-ის პრობლემები, რამაც შეიძლება გამოიწვიოს კომპიუტერის პრობლემები.
- დააწკაპუნეთ შეკეთება ყველა პრობლემების გადასაჭრელად, რომლებიც გავლენას ახდენს თქვენი კომპიუტერის უსაფრთხოებასა და შესრულებაზე.
- Restoro ჩამოტვირთულია 0 მკითხველი ამ თვეში.
Try-Catch განცხადებაში PowerShell ამუშავებს შეცდომებს და გამონაკლისებს თქვენს კოდში. თუ Try-Catch არ მუშაობს გამონაკლისით PowerShell-ზე, ეს შეიძლება იყოს იმედგაცრუებული.
ამ სახელმძღვანელოში ჩვენ განვიხილავთ პრობლემის მოგვარების ყველა გზას, პრობლემის სავარაუდო მიზეზებთან ერთად. Დავიწყოთ!
რა იწვევს Try-Catch-ს არ მუშაობს PowerShell-ში?
შეიძლება არსებობდეს სხვადასხვა მიზეზი, რის გამოც განცხადება არ მუშაობს PowerShell-ზე. აქ არის რამდენიმე ყველაზე გავრცელებული:
- ნაგულისხმევი ErrorAction ნაკრები - თუ ErrorAction დაყენებულია გაგრძელებაზე, მაშინ Try-Catch არ იმუშავებს ისე, როგორც მოსალოდნელი იყო.
- სინტაქსის შეცდომები – თუ გამოყენებული სინტაქსი არასწორია, ფორმატირება არასწორია, ან აკლია საკვანძო სიტყვები, Try-Catch არ იმუშავებს.
- Cmdlet ან ფუნქციის ქცევა – ზოგიერთ ფუნქციას და cmdlet-ს გააჩნია შეცდომების დამუშავების ქცევა, რომელიც შესაძლოა არ იყოს თავსებადი Try-Catch-თან.
- არასწორი ლოგიკა ან ცვლადების გამოყენება - თუ არის არასათანადო გამოყენება ცვლადები ან არასწორი ლოგიკა, მაშინ Try-Catch არ იმუშავებს.
რა გავაკეთო, თუ Try-Catch არ მუშაობს PowerShell-ზე?
1. შეამოწმეთ სინტაქსი
- პირველ რიგში, თქვენ უნდა შეამოწმოთ, იყენებდით თუ არა სწორ სინტაქსს PowerShell-ის ვერსიისთვის, რომელსაც იყენებთ.
- შემდეგი, შეამოწმეთ, რომ თქვენ მოათავსეთ Try და Catch ბლოკები სწორი თანმიმდევრობით.
- Try-Catch-ის ძირითადი სინტაქსი მოცემულია ქვემოთ. ჩაანაცვლეთ # კოდი აქ გასაშვებად კოდით და # შეცდომის დამუშავების კოდი აქ შეცდომის დამუშავების კოდით:
სცადე {
აქ გასაშვებად # კოდი
}
დაჭერა {
კოდის დამუშავების # შეცდომა აქ
}
2. შეამოწმეთ, აფიქსირებთ თუ არა კონკრეტულ შეცდომას
თქვენ უნდა გადაამოწმოთ, იჭერთ თუ არა კონკრეტულ შეცდომებს, რომელთა მოგვარებაც გსურთ და არა ყველა შეცდომას. მიჰყევით ამ ნაბიჯებს იგივეს გასაკეთებლად:
- დააჭირეთ
ფანჯრები
გასაღები, ტიპი PowerShell, და დააწკაპუნეთ Ადმინისტრატორის სახელით გაშვება. - შეცდომის ხაფანგში, თქვენ უნდა გამოიყენოთ $ ცვლადი Catch ბლოკში, რათა მიიღოთ ინფორმაცია დაშვებული შეცდომის შესახებ. მოდით შევამოწმოთ იგივე მაგალითი, რომ უკეთ გავიგოთ:
სცადე {
Get-ChildItem -გზა C:\DoesNotExist
}
დაჭერა {
თუ ($_. გამონაკლისი. GetType().Name -eq "DirectoryNotFoundException") {
ჩაწერეთ-გამომავალი "ცნობარი ვერ მოიძებნა".
}
სხვა {
გადაყარეთ $_.გამონაკლისი|
}
}
3. დააყენეთ ErrorAction მნიშვნელობა
ErrorAction-ის ნაგულისხმევი მნიშვნელობა არის Continue; თუმცა, იმისათვის, რომ Try-Catch იმუშაოს, თქვენ უნდა დააყენოთ ErrorAction მნიშვნელობა Stop-ზე. ამისათვის მიჰყევით ამ ნაბიჯებს:
- გახსენით PowerShell როგორც ადმინისტრატორი.
- თქვენ უნდა გამოიყენოთ Set-StrictMode cmdlet ან ErrorAction პარამეტრი ცალკეულ cmdlet-ებზე. ამის უკეთ გასაგებად, მოდით შევხედოთ მაგალითს:
სცადე {
Get-ChildItem -გზა C:\DoesNotExist -ErrorAction Stop
}
დაჭერა {
Write-Output $ _. გამონაკლისი. შეტყობინება
}
- აი, როგორ აღადგინოთ თქვენი BitLocker გასაღები OneDrive-დან
- როგორ გამოვიყენოთ ტელეფონის ბმული iPhone-ისთვის Windows 11-ზე
- DaVinci Resolve High CPU-ს გამოყენება: როგორ შევამციროთ იგი
4. გამოიყენეთ გამონაკლისის სწორი ტიპი
მნიშვნელოვანია სწორი გამონაკლისების გამოყენება Try-Catch-ის გამოყენებისას, რადგან მას შეუძლია მხოლოდ სისტემის გამონაკლისების დამუშავება. გამონაკლისის ტიპი. თუ თქვენ იყენებდით არასისტემას. გამონაკლისი შეცდომები, მაშინ Try-Catch არ იმუშავებს.
რაც შეეხება არასისტემას. გამონაკლისი, თქვენ უნდა გამოიყენოთ NET” Framework-ის შეცდომების დამუშავების მექანიზმი ან დაიჭიროთ შეცდომა.
5. მოერიდეთ სკრიპტის შეწყვეტას
თუ თქვენი სკრიპტი წყდება Catch ბლოკამდე მისვლამდე, Try-Cach-ს არ ექნება შანსი დამუშავდეს შეცდომა. სკრიპტის შეწყვეტის თავიდან ასაცილებლად, მიჰყევით ამ ნაბიჯებს:
- გაშვება PowerShell ადმინისტრატორის უფლებებით.
- თქვენ უნდა გამოიყენოთ განაგრძეთ განცხადება შემდეგ დაიჭირე ბლოკი. გავიგოთ ეს მაგალითით:
სცადე {
Get-ChildItem -გზა C:\DoesNotExist
}
დაჭერა {
Write-Output $ _. გამონაკლისი. შეტყობინება
განაგრძეთ
}
6. გამოიყენეთ Try-Catch-Finally
თუ Try-Catch განცხადება ჯერ კიდევ არ მუშაობს, ამის ნაცვლად შეგიძლიათ გამოიყენოთ Try-Catch-Finally კონსტრუქცია. ეს უზრუნველყოფს თქვენი კოდის დასრულებას, თუნდაც გამონაკლისი იყოს.
- გახსენით PowerShell როგორც ადმინისტრატორი.
- ჩაწერეთ ბრძანება სცადე-დაჭერა-ბოლოს. აქ არის მაგალითი სცენარის უკეთ გასაგებად:
სცადე {
# თქვენი კოდი აქ
}
დაჭერა [სისტემ. გამონაკლისი] {
# გამონაკლისის დამუშავების კოდი აქ
}
ბოლოს {
# გასუფთავების კოდი აქ
}
ასე რომ, ეს არის გზები, რომლითაც შეგიძლიათ გადაჭრათ Try Catch არ მუშაობს PowerShell-ზე. თუ თქვენ გაქვთ რაიმე შეკითხვა Try-Catch-თან დაკავშირებით, გთხოვთ, მიუთითოთ ისინი კომენტარების განყოფილებაში ქვემოთ. მოხარული ვიქნებით დაგეხმაროთ!
თუ გსურთ იცოდეთ როგორ შეაჩეროთ PowerShell-ის დახურვა სკრიპტის გაშვების შემდეგ, შეგიძლიათ წაიკითხოთ ეს.
ჯერ კიდევ გაქვთ პრობლემები? გაასწორეთ ისინი ამ ხელსაწყოთი:
სპონსორირებული
თუ ზემოხსენებულმა რჩევებმა არ გადაჭრა თქვენი პრობლემა, თქვენს კომპიუტერს შეიძლება ჰქონდეს უფრო ღრმა Windows პრობლემები. Ჩვენ გირჩევთ ამ კომპიუტერის სარემონტო ხელსაწყოს ჩამოტვირთვა (შეფასებულია მშვენივრად TrustPilot.com-ზე), რათა მათ მარტივად მივმართოთ. ინსტალაციის შემდეგ უბრალოდ დააწკაპუნეთ სკანირების დაწყება ღილაკს და შემდეგ დააჭირე შეკეთება ყველა.