Qu'est-ce que le try and catch en PowerShell ?
파워쉘

PowerShell의 시도 앤 캐치(try and catch)란 무엇입니까?

By Hervé , on 5 7월 2024 , updated on 5 7월 2024 - 1 minute to read
Partager cet article :

PowerShell try and catch는 스크립트의 오류를 처리하는 데 사용되는 방법입니다. 잠재적으로 문제가 있는 코드를 “try” 구조에 캡슐화함으로써 발생하는 오류를 포착하고 처리할 수 있으며 “catch” 블록에서 적절하게 처리할 수 있습니다. 이 접근 방식은 문제를 예측하고 통제된 방식으로 처리함으로써 PowerShell 스크립트의 신뢰성과 견고성을 향상시키는 데 도움이 됩니다.

PowerShell에서 시도 및 잡기 사용

블록 시도하고 잡아라 PowerShell의 관리 메커니즘은 예외 이를 통해 오류를 캡처하고 관리할 수 있습니다. 소유하다 그리고 효과적인. 이 블록을 사용하면 오류를 생성할 수 있는 코드를 실행하고 그러한 오류가 발생할 경우 채택할 동작을 정의할 수 있습니다.

블록 노력하다 잠재적으로 예외를 발생시킬 수 있는 코드가 포함되어 있습니다. 오류가 발생하지 않으면 코드는 계속해서 정상적으로 실행됩니다. 그러나 오류가 발생하면 제어가 블록으로 이전됩니다. 레슬링. 필수 코드 섹션은 다음과 같습니다.

블록 레슬링 특정 방식으로 다양한 예외 유형을 처리하도록 구성할 수 있습니다. 여러 블록을 정의할 수 있습니다. 레슬링 다양한 유형의 오류를 캡처하려면 다음을 수행하세요.

블록 마지막으로 선택 사항이며 예외 발생 여부에 관계없이 체계적으로 실행됩니다. 리소스를 확보하거나 정리 작업을 수행하는 데 자주 사용됩니다.

시도 및 캐치 사용 따라서 PowerShell에서는 다음을 수행할 수 있을 뿐만 아니라 오류 처리, 코드 작성에도 사용 건장한 그리고 유지 관리 가능, 예외가 적절하게 처리되도록 보장합니다.

try and catch의 구문

그만큼 PowerShell에서 시도해 보세요. 스크립트의 오류를 처리하기 위한 제어 구조입니다. 이를 통해 특정 방식으로 처리하기 위해 코드 섹션을 실행하고 발생할 수 있는 예외나 오류를 캡처할 수 있습니다. 이 구조는 스크립트의 견고성과 신뢰성을 향상시키는 데 특히 유용합니다.

구문은 시도하고 잡아라 매우 간단하며 두 가지 주요 블록으로 구성됩니다.



노력하다 { 
    # 잠재적으로 오류를 생성할 수 있는 실행 코드 
} 
잡다 { 
    # 오류 발생 시 실행할 코드 
} 


블록에서 노력하다, 오류를 모니터링하려는 코드를 배치합니다. 이 블록에 오류가 발생하면 즉시 제어가 해당 블록으로 넘어갑니다. 레슬링, 여기서 이 오류를 적절하게 처리할 수 있습니다.

여러 블록으로 특정 유형의 오류를 캡처하는 것도 가능합니다. 레슬링, 이와 같이 :



노력하다 { 
    # 실행할 코드 
} 
    # 입출력 오류 처리 
} 
    # 인증 오류 처리 
} 
잡다 { 
    # 다른 유형의 오류 처리 
} 


사용 시도하고 잡아라 PowerShell에서는 오류를 보다 효율적으로 처리할 수 있을 뿐만 아니라 스크립트의 가독성과 유지 관리 가능성도 향상됩니다.

Try and Catch를 사용한 오류 처리

그만큼 시도하고 잡아라 PowerShell에서는 오류 처리를 위한 필수 메커니즘입니다. 이 개념을 통해 스크립트는 명령이나 코드 블록 실행 중에 발생할 수 있는 예외를 우아하게 처리할 수 있습니다. 이러한 블록을 사용하면 처리되지 않은 오류로 인해 스크립트 흐름이 중단되는 것을 방지할 수 있습니다.

PowerShell에서는 블록


노력하다

예외를 생성할 가능성이 있는 코드 부분을 래핑하는 데 사용됩니다. 블록 내부에서 예외가 발생하는 경우


노력하다

, 그녀는 블록에 걸렸다


레슬링

대리인. 다음은 기본 구문의 예입니다.



노력하다 {
    # 예외를 생성할 가능성이 있는 코드
    항목 가져오기 "C:NonExistentFile.txt"
}
잡다 {
    # 예외를 처리하는 코드
    Write-Host "지정된 파일을 찾을 수 없습니다."
}


위의 코드는 존재하지 않는 파일에 액세스하려고 시도합니다. 주문할 때


항목 가져오기

실패하면 블록에서 예외를 포착합니다.


레슬링

, 사용자에게 메시지가 표시됩니다.

오류 처리 시도하고 잡아라 PowerShell에서는 다양한 유형의 예외를 지정하거나 블록을 추가하여 더욱 발전할 수 있습니다.


마지막으로

예외가 발생했는지 여부에 관계없이 항상 실행됩니다.

강력한 오류 처리를 위한 핵심 요소는 다음과 같습니다.

  • 예외 유형 지정: 블록에 지정하여 다양한 유형의 예외를 관리할 수 있습니다. 레슬링

    어떤 특정 유형을 잡아야 하는지.

  • 블록을 사용하여 마지막으로

    : 이 블록은 블록 다음에 실행됩니다.

    노력하다

    그리고 블록들

    레슬링

    , 예외 발생 여부에 관계없이 리소스를 정리하거나 최종 작업을 실행할 수 있습니다.



노력하다 {
    # 특정 예외를 생성할 가능성이 있는 코드
}
    Write-Host "런타임 오류가 감지되었습니다."
}
잡다 {
    Write-Host "지정되지 않은 오류가 감지되었습니다."
}
마지막으로 {
    Write-Host "블록이 최종적으로 실행되었습니다."
}


이 예에서는 블록


레슬링

특별히 처리하도록 개선되었습니다.


런타임예외

. 블록


마지막으로

블록 성공이나 실패에 관계없이 실행됩니다.


노력하다

.

노력하다 레슬링
테스트할 코드를 둘러싸는 데 사용됩니다. try 블록에서 발생하는 오류를 처리하는 데 사용됩니다.
코드 블록을 실행하고 잠재적인 오류를 포착할 수 있습니다. 오류를 처리하고 스크립트 중단을 방지하기 위해 코드를 실행합니다.
우아하고 구조화된 방식으로 오류 처리를 용이하게 합니다. 오류 메시지 표시, 스크립트 다시 시작 등 오류 발생 시 취할 조치를 정의할 수 있습니다.

PowerShell에서 try and catch를 사용하는 예

~ 안에 파워셸, 블록 시도하고 잡아라 오류 처리에 사용되는 구조입니다. 이를 통해 스크립트는 예외를 깔끔하게 처리하고 스크립트 충돌을 방지하면서 유용한 오류 정보를 제공할 수 있습니다.

블록 노력하다 예외를 일으킬 수 있는 코드가 포함되어 있습니다. 예외가 발생하면 블록에 의해 포착됩니다. 레슬링 적절한 응답을 설정할 수 있습니다.

예를 들어 :


노력하다 {
    # 예외를 생성할 가능성이 있는 코드
    콘텐츠 가져오기 -경로 "non-existent_file.txt"
} 잡다 {
    Write-Host "오류: 지정한 파일을 찾을 수 없습니다."
}

이 예에서는 “non-existent_file.txt” 파일이 존재하지 않으면 “오류: 지정한 파일을 찾을 수 없습니다.”라는 메시지가 나타납니다. 표시됩니다.

여러 개의 블록을 사용할 수 있습니다 레슬링 다양한 예외를 처리하려면 다음을 수행하세요.


노력하다 {
    # 여러 유형의 예외를 생성할 가능성이 있는 코드
    Write-Host "형식 오류: 정수로 변환할 수 없습니다."
} 잡다 {
    Write-Host "오류: 예외가 발생했습니다."
}

이 예에서 잘못된 형식으로 인해 변환이 실패하면 첫 번째 블록은 레슬링 실행됩니다. 다른 예외의 경우 두 번째 블록 레슬링 오류를 처리하겠습니다.

키워드를 활용하는 것도 가능합니다 마지막으로 예외가 있는지 여부에 관계없이 코드를 실행하려면 다음을 수행하세요.


노력하다 {
    # 예외를 생성할 가능성이 있는 코드
    콘텐츠 가져오기 -경로 "non-existent_file.txt"
} 잡다 {
    Write-Host "오류: 지정한 파일을 찾을 수 없습니다."
} 마지막으로 {
    Write-Host "마지막으로 차단: 리소스 정리."
}

블록 마지막으로 예를 들어 정리 또는 리소스 확보 작업을 수행할 수 있도록 계속 실행됩니다.

요약하면 오류 처리 시도하고 잡아라 PowerShell에서는 실행 흐름을 제어하면서 스크립트를 더욱 강력하게 만들고 보다 정확한 오류 정보를 제공하는 데 도움이 됩니다.

사용자 입력 검증

그만큼 시도하고 잡아라 PowerShell에서는 다음을 관리할 수 있습니다. 예외 오류로 인해 스크립트에서 예기치 않은 종료가 발생하지 않는지 확인하세요. 이 방법은 디버그 코드를 작성하고 오류를 우아하게 처리하여 원활한 실행을 보장합니다.

블록 노력하다 잠재적인 오류를 모니터링하려는 코드가 포함되어 있습니다. 만약 예외 발생하면 제어권이 즉시 블록으로 전달됩니다. 레슬링 오류를 처리할 수 있는 곳입니다. PowerShell은 블록도 제공합니다. 마지막으로 예외가 있든 없든 코드를 실행하는 선택 사항입니다.

다음은 간단한 예입니다.



노력하다 {
    # 잠재적으로 문제가 있는 코드
    $결과 = 1 / 0
} 잡다 {
    Write-Host "오류가 발생했습니다: $_"
} 마지막으로 {
    Write-Host "마지막으로 블록이 실행되었습니다."
}


이 코드는 1을 0으로 나누려고 시도합니다. 예외. 블록 레슬링 이 오류를 캡처하고 메시지를 표시하는 동안 블록은 마지막으로 항상 달린다.

의 일환으로 사용자 입력 검증,의 사용 시도하고 잡아라 매우 유용해집니다. 예를 들어, 사용자 입력이 정수인지 확인하려면 다음을 수행하십시오.



$input = 읽기 호스트 "숫자를 입력하세요"
노력하다 {
[int]    $num = $입력[int]
    Write-Host "유효한 숫자를 입력했습니다: $num"
} 잡다 {
    Write-Host "오류: 입력이 정수가 아닙니다."
}


이 스크립트는 사용자에게 숫자를 입력하도록 요청합니다. 사용자가 정수로 변환할 수 없는 값을 입력하면 예외 들어 올려지고 블록이 레슬링 오류 메시지를 표시합니다.

그만큼 시도하고 잡아라 PowerShell은 특히 사용자 입력이나 기타 오류에 민감한 작업을 처리할 때 오류를 처리하고 스크립트의 원활한 실행을 보장하는 효과적인 방법입니다.

특정 예외 처리

PowerShell에서는 블록 노력하다 그리고 레슬링 예외, 즉 스크립트 실행 중에 발생할 수 있는 오류를 관리할 수 있습니다. 이렇게 하면 스크립트의 연속성이 보장되고 문제가 발생할 경우 특정 코드가 실행됩니다. 블록


노력하다

정상적으로 실행될 코드가 포함되어 있고, 블록에는


레슬링

예외가 발생하면 발생합니다.

다음은 간단한 예입니다.


노력하다 {
    # 오류가 발생할 가능성이 있는 코드
    $결과 = 1 / 0
} 잡다 {
    # 오류 발생 시 실행할 코드
    Write-Host "오류가 발생했습니다: $_"
}

이 예에서 0으로 나누면 예외가 발생하고 블록에 지정된 메시지가 표시됩니다.


레슬링

게시됩니다.

예외 관리도 가능 특정한. 예를 들어 파일 액세스 오류를 다른 유형의 오류와 다르게 처리하려는 경우 여러 블록을 사용할 수 있습니다.


레슬링

:


노력하다 {
    # 오류가 발생할 가능성이 있는 코드
    콘텐츠 가져오기 "C:non-existent_file.txt"
    # 파일을 찾을 수 없을 때 실행할 코드
    Write-Host "파일을 찾을 수 없습니다."
} 잡다 {
    # 다른 오류에 대해 실행할 코드
    Write-Host "또 다른 오류가 발생했습니다: $_"
}

이 예에서는 첫 번째 절


레슬링

파일을 찾을 수 없음 예외를 구체적으로 처리하는 반면 두 번째 절은


레슬링

다른 모든 잠재적인 오류를 처리합니다.

블록 마지막으로 블록 뒤에 사용할 수 있습니다.


노력하다

그리고


레슬링

예외가 있는지 여부에 관계없이 실행되어야 하는 코드를 실행합니다. 예를 들어 :


노력하다 {
    # 오류가 발생할 가능성이 있는 코드
    $결과 = 1 / 0
} 잡다 {
    # 오류 발생 시 실행할 코드
    Write-Host "오류가 발생했습니다: $_"
} 마지막으로 {
    # 모든 경우에 실행되는 코드
    Write-Host "마지막 블록을 실행하는 중입니다."
}

블록


마지막으로

“Executing finally block” 메시지가 표시되는지 확인합니다. 블록에서 예외가 발생하더라도 표시됩니다.


노력하다

.

Avatar

Hervé

Comments

Leave a comment

Your comment will be revised by the site if needed.