2014-01-16 1 views
0

시스템의 제어 프록시 용 타사 소프트웨어를 사용하고 있습니다.
모든 네트워크 연결에서 해당 프록시 소프트웨어를 사용합니다.
내 Windows 응용 프로그램에 내 파일 업로드에 대한 몇 가지 코드가 있습니다 FTP.
나는 FTP 클래스와 주 응용 프로그램에서 많은 오류가 발생하는 것을 막고 응용 프로그램을 중단하지 못하도록 많은 시도를합니다.
프록시 소프트웨어가 실행 중이고 ftp 클래스가 내 서버에 연결하려고하고 갑자기 프록시 소프트웨어를 닫을 때 알 수없는 이유로 프로그램이 종료되었습니다.
어떻게 프로그램을 충돌로 닫고 계속 살릴 수 있습니까?
tr-catch가 자신의 직업을 수행 할 수없는 이유는 무엇입니까?TRY-CATCH를 포함한 크래시시 원치 않는 프로그램 종료 방지

편집 1 :
이러한 오류는 캐치 부품이 실행되지 않습니다.

IMAGE 3

편집 2 :

IMAGE 1

IMAGE 2

하지만 일반 예외 창은 다음과 같이이다 :
내 시도/캐치
이 그림을 참조하시기 바랍니다 아래와 같습니다 :

class My_FTP 
{ 
    public void upload() 
    { 
     try 
     { 
     //Codes 

     CRASH IS HERE AND WE NEVER JUMP TO CATCH EREA!!!!!!!!!!!!!!!!!!!! 

     while (bytesSent != 0) 
     { 

     } 
     } 
     catch (Exception ex) 
     { 
     Console.WriteLine(ex.ToString()); 
     } 
    } 
} 


private void Form1_Load(object sender, EventArgs e) 
{ 
    try 
    { 
    My_FTP my_ftp_ = new My_FTP(); 
    my_ftp_.upload(); 
    } 
    catch (Exception ex) 
    { 
    Console.WriteLine(ex.ToString()); 
    } 

    try 
    { 
    //Other_Codes; 
    } 
    catch (Exception ex) 
    { 
    Console.WriteLine(ex.ToString()); 
    } 

}  

나는 이러한 시도 :

Thread: "vshost32-clr2.exe has stopped working" ->하지 프로그래밍

VShost32.exe stopped working, but I can continue debugging -> 없음 당신이 예외를 잡을 때 로깅의 어떤 종류를 추가해야합니다 아마

+0

?그리고 예외는 무엇입니까? (예외를 잡기 위해 로그를 남기거나 그들과 함께해야하는 경우) –

+0

@your edit : 그래서 지금 당신이 가진 이슈/그 문제를 해결 했습니까? –

+0

.... 나는 거기에 2 개의 질문을했다 –

답변

1

이 때문에 타사 라이브러리의 원시 코드의 수 있습니다 당신은

네이티브 예외를 잡기 위해 여기에 몇 가지 도움말을 찾을 수 있습니다, C#으로 LibVlc를 사용하는 경우, 내가 비슷한 문제에 직면 한 이런 방식으로 네이티브 예외를 잡을 수 없어 ( http://msdn.microsoft.com/en-us/magazine/dd419661.aspx)

비슷한 문제 Can you catch a native exception in C# code? 또한

catch 문에서 (Exception ex)를 제거하려고 시도 캐치 코드의

1

도움 . 프로그램이 종료되는 이유는 예외가 발생하면 메서드가 종료되어 Main 메서드가 종료되기 때문입니다. 당신의 try catch 블록에서

1

예를 들어 캐치 내에서 어떤 논리를 넣어보십시오

catch(Exception e) 
{ 
    MessageBox.Show("Error: " + e.Message, "Exception Thrown", MessageBoxButtons.OK, MessageBoxIcon.Error); 
    OtherMethod(); //Or something like this 
} 

는 분명히 이것에 대해 갈 수있는 더 나은 방법이있을 것이다, 나는 단지 간단한 솔루션을 제공하고있다.

+0

@MoonLight 당신은 관계없이 잡으려고 아무 것도 넣지 않았습니까? – JBurnham

+0

예, 그 사진을 참조하십시오. 그 catch 부분은 결코 오류를 얻기 위해 실행되지 않으며 이것이 내가 질문 한 이유입니다. – MoonLight

+0

@MoonLight 도움이 될까요? http://forums.arcgis.com/threads/41861-quot-vshost32-clr2.exe-has-stopped-working-quot – JBurnham