2012-05-11 5 views
-3

VB.net에서 프로그램의 실행을 중단해야합니다. 반복 구조 내에서 프로그램은 변수가 참인지 거짓인지 확인합니다. 변수가 false이면 프로그램 실행을 중지해야합니다. 나는 프로그램을 닫고 싶지 않고 멈추고 싶다. 내가 찾은 한 가지 방법은 예외를 발생시키는 것이지만 사용자에게 오류 메시지를 표시하고 싶지는 않습니다. 가장 좋은 방법은 무엇입니까?반복 구조에서 실행을 중지합니다. VB.NET

Do 
    If myvariable=false then 
    throw new exception... 'Silent exception 
    end if 
Loop until …. 

데이비스

당신은 출구 문 루프를 종료 할 수 있습니다
+1

는 "프로그램의 실행을 중지"무엇을 의미합니까 시도 할 수 있습니다?디버거에서 멈추시겠습니까? 아니면 루프를 종료 하시겠습니까? –

+0

나는 정확한 답이 되 돌아 오는 것에 벅을 댈 것이다. –

+0

@ Yatrix : 그는 VB.NET보다 낫다. 그게 무슨 뜻이야? VB.NET에는'Return' 키워드가 있습니다. –

답변

1

편집 아래의 의견에 근거하십시오.

그런 경우에 사용할 것입니다.

Do 
    If myvariable=false then 
     Return 
    end if 
Loop until …. 

은 정말 당신이 싶은 무엇 확실하지 않다.

당신은 Application.Exit()

모든 메시지 펌프에 끝나야 함을 알리고 사용하여 응용 프로그램을 닫은 다음 메시지가 처리 된 후 모든 응용 프로그램 창 한 종료 할 수 있습니다.

정말 급한 사람이되고 싶다면 End 성명서로 전화하십시오.

끝 문

Terminates execution immediately. 

이 갑자기 코드의 실행을 중지하고 폐기를 호출하거나 방법, 또는 기타 VBA 코드를 마무리하지 않습니다. 다른 프로그램에서 보유한 객체 참조가 무효화됩니다. Try 문이나 Catch 문 내에 End 문이 있으면 컨트롤이 해당 Finally 블록으로 전달되지 않습니다.

Stop 문을 사용하면 실행을 일시 중단 할 수 있지만 디버거가 호출됩니다.

통합 개발 환경 (IDE) 외부에서 실행되는 코드에서 Stop 문이 발견되면 디버거가 호출됩니다. 이는 코드가 디버그 모드 또는 소매 모드로 컴파일되었는지 여부에 관계없이 적용됩니다.

또는 당신이 당신 Do 문을 종료하고자하는 경우 당신은이

Do 
    If myvariable=false then 
     Exit Do 
    end if 
Loop until …. 
+0

내 응용 프로그램이 다른 응용 프로그램의 API에서 응답을 기다리는 중이고 API의 함수 반환이 원하는 값이 아닌 동안 내 프로그램이 반복 실행 중입니다. 여러 가지 이유들로 인해 반복 구조의 예상되는 결과를 얻지 못할 수도 있습니다. 따라서 사용자가 예상되는 함수 반환을 얻는 데 너무 오래 걸리는 경우 버튼을 클릭하면 프로그램이 반복 구조를 종료하고 하위 순서 하위로 진행하지 않고 중지 할 수 있습니다 ("중지"). 프로그램을 종료하지 않고 단순히 사용자가 버튼을 클릭하여 다시 시작할 때까지 멈 춥니 다. –

+0

@SammyDavis 대부분의 구조체는 앞서 사용한 Exit Do와 같은 방법으로 종료합니다. 당신이 사용할 수있는 것은 당신의 구조가 위치한 Method의 타입에 따라'Exit Sub' 또는'Exit Function' 또는 그냥'Return'입니다. –

+0

VB.NET 관련 Stop 키워드의 대안은 모든 .NET 언어에서 지원되는 정적 System.Diagnostics.Debugger.Break() 메서드를 사용하는 것입니다. –

0

. 또는 예외를 throw하는 메서드를 사용하고 특정 예외를 포착하고 무시하는 Try/Catch 블록에서 루프를 둘러싸는 방법을 사용할 수 있습니다.

+0

Tks, 나는 초기 게시물을 완료했습니다. 다시 봐라. –

+0

그리고 그냥 잡아서 삼키기 위해 예외를 던지는 요지는 뭔가요? –

+0

루프가 종료 된 후 프로세스가 완료되었거나 사용자가 취소했기 때문에 종료했는지 여부에 따라 종료 된 이유와 다른 방식으로 동작해야하는지 테스트해야합니다. 그러면 UserCanceledException을 throw하는 것이 반드시 나쁜 방법은 아닙니다. –

0

정말로 멈추고 싶다면 Stop 키워드를 사용할 수 있습니다. 그러나, 나는 그것이 exe 또는 IDE에서 실행 중인지 여부에 따라 결과가 다르므로 이것이 실제로 원하는 것임을 확신하지는 못합니다.

질문에 대한 더 많은 컨텍스트가 문제에 대한 최상의 대답을 찾는 데 유용 할 것입니다.

관련 문제