- Nzwisisa mutsauko uripo pakati pekugumisa uye kusagumisa kukanganisa.
- Shandisa $Error uye ErrorVariable kubata zvikanganiso nemazvo.
- Adopt Edza / Bata / Pakupedzisira inovharira kubata kunze ne granular control.
- Seta $ErrorActionPreference kune yaunoda kukanganisa maitiro.
PowerShell Icho chishandiso chine simba zvakanyanya kubata, otomatiki uye kutonga mabasa mukati meiyo ecosystem ye operating systems Windows nedzimwe nzvimbo. Zvisinei, sezvakaita chero mutauro we programming, kubata kwe zvikanganiso chikamu chakakosha chekuona kuti zvinyorwa zvinofamba zvakanaka uye nemazvo.
Muchikamu chino, tichaongorora zvakadzama maitiro ekubata zvikanganiso muPowerShell, kubva kune izvo zvekutanga kusvika kune mamwe maitiro chaiwo. Tichakurukura nzira dzakasiyana uye nzira dzaungaite kuti uvandudze kusimba kwezvinyorwa zvako uye kuona kuti kutadza kubatwa nemazvo pasina kukanganisa maitiro akakosha.
Kukanganisa Kubata Basics muPowerShell
Kuti unzwisise maitiro ekugadzirisa zvikanganiso muPowerShell, zvakakosha kusiyanisa pakati pemhando mbiri huru dzezvikanganiso: zvikanganiso zvekugumisa (kugumisa zvikanganiso) uye zvikanganiso zvisiri zvekugumisa (kusagumisa zvikanganiso).
- Kukanganisa kusiri kupedza: Rudzi urwu rwekukanganisa harukanganisi kuita kwe chinyorwa. Semuenzaniso, kana PowerShell isingakwanise kugadzirisa faira rega mune runyorwa, icharamba ichiedza zvinhu zvinotevera.
- Kukanganisa kwekugumisa: Zvikanganiso izvi zvinoita kuti script kana pombi imire nekukasika. Iwo akanyanya kukomba uye anoda kutariswa nekukurumidza.
Kunzwisisa mutsauko uyu kwakakosha pakushandisa maturusi akakodzera ekubata kukanganisa muPowerShell.
Kutadza kubata ne$Error uye ErrorVariable
Kukanganisa kubata muPowerShell kunonyanya kuenderana nekushandiswa kwemaotomatiki akasiyana senge $Error uye paramende ErrorVariable.
$Error: Ishanduko yepasi rose iyo inoshanda serunyorwa rwekukanganisa panguva yechikamu chazvino. Zvikanganiso zvitsva zvinowedzerwa kumusoro kwechinyorwa, uye unogona kuwana iyo ichangoburwa ne $Error[0]
. Kubvisa zvikanganiso zvese zvakaunganidzwa, shandisa $Error.Clear()
.
ErrorVariable: Iyi parameter inokutendera kuti utore zvikanganiso kubva kune yakatarwa kuraira kuita kune yakasarudzika tsika. Kusiyana $Error, ErrorVariable haiunganidzi kukanganisa kwevamwe rairo akambourayiwa.
Somuenzaniso:
Get-ChildItem -Path "C:\CarpetaInexistente" -ErrorVariable MiError
Muchiitiko ichi, zvikanganiso zvinogadzirwa nemurairo zvichachengetwa mukusiyana $MiError
.
Kushandisa $ErrorActionPreference uye ErrorAction
Mukati mePowerShell, pane otomatiki shanduko inonzi $ErrorActionPreference iyo inodzora kuti kukanganisa kunoitwa sei. Izvi zvakasiyana, senge parameter Error Action, inogamuchira zvakati wandei:
- Rambai: Izvi ndizvo zvinogara zviripo. Ratidza kukanganisa mukoni uye ramba uchimhanyisa script.
- ChinyararireEndererai mberi: Dzvinyirira meseji yekukanganisa uye enderera mberi nekuita.
- Mira: Inomisa script kana kukanganisa kwasangana.
- Bvunza: Bvunza mushandisi kuti woenderera sei kana paine chikanganiso.
- Ziva: Rega kukanganisa zvachose uye usazvinyore (inowanikwa kubvira PowerShell 3.0).
Semuenzaniso, kana iwe uchida kuti kukanganisa kuitwe sekupedza zvikanganiso, unogona kushandisa:
$ErrorActionPreference = "Mira"
Edza/Bata/Pakupedzisira Zvivhare
Mabhuroko Edza/Bata/Pakupedzisira chishandiso chakakosha chekubata kumisa zvikanganiso muPowerShell. Iyi nzira inokubvumira kubata uye kubata zvisiri izvo nenzira inodzorwa.
The basic structure is:
Edza {# Kodhi inogona kukanganisa kukanganisa } Bata [SpecificException] {# Kubata imwe yakasarudzika } Bata {# Kubata chero kusarudzika } Pakupedzisira {# Kodhi inogara ichiitwa, kunyangwe paine chikanganiso kana kuti kwete}
Chikamu pakupedzisira Inobatsira kusunungura zviwanikwa kana kuita chero chiitiko chinoda kuitwa zvisinei nekuti kukanganisa kwakaitika.
Zvishandiso zvinobatsira zveErrorRecord
Kana kukanganisa kukaitika, PowerShell inogadzira chinhu ErrorRecord. Izvi zvine ruzivo rwakadzama nezve chikanganiso uye chinowanikwa kuburikidza nezvinosiyana $Error
o $_
mukati meblock Catch.
Zvimwe zvakakosha zvimiro zve ErrorRecord zvinosanganisira:
- TargetObject: Chinhu chakonzera kukanganisa.
- CategoryInfo: Chikamu uye tsananguro pfupi yekukanganisa.
- Kunze kwekuti: Tsanangudzo yekusarudzika yakagadzirwa.
- InvocationInfo: Ruzivo rwakananga nezve murairo kana script pakaitika kukanganisa.
Aya maficha anobatsira zvakanyanya pakuona chikonzero chekukanganisa uye kutora matanho ekugadzirisa.
Mazano ekuvandudza kukanganisa kukanganisa
Isu tinopa mamwe mazano anoshanda:
- Dzivisa kufuratira kukanganisa ne ChinyararireEndererai mberi kana mablocks asina chinhu mukati Catch.
- Kana ukashandisa mapurogiramu ekunze, shandisa
$LASTEXITCODE
kuti utarise kodhi yekubuda uye ita shuwa kuti inoteedzera zvibvumirano zvakajairwa. - Ita bvunzo kuona zvinogona kukanganisa uye maitiro avo usati waendesa script kunzvimbo dzekugadzira.
- Shandisa mabhuroko Edza/Bata kubata zvikanganiso zvakakomba uye kuona kuti zvinyorwa zvako zvakasimba uye zvinofanotaurwa.
Kunzwisisa uye kunyatsogadzirisa zvikanganiso muPowerShell kwakakosha kune chero maneja kana mugadziri. Nezvishandiso uye marongero akatsanangurwa, iwe unozokwanisa kugadzirisa matambudziko zvakanyanya, kugonesa maitiro ako uye kuderedza kukanganisa. Iye zvino zvaunonyatso ziva kukanganisa kubata muPowerShell, yave nguva yekuiisa mukuita!
Anofarira munyori nezve nyika yemabytes uye tekinoroji zvakazara. Ini ndinoda kugovera ruzivo rwangu kuburikidza nekunyora, uye ndizvo zvandichaita mune ino blog, kukuratidza zvinhu zvese zvinonyanya kufadza nezve gadget, software, hardware, tekinoroji maitiro, nezvimwe. Chinangwa changu ndechekukubatsira kufamba munyika yedhijitari nenzira iri nyore uye inonakidza.