2011-04-11 5 views
0

다음 코드는 예외를 throw하지 않고 파일을 복사하지 않을 수 있습니까?File.Copy 메서드

void Copy2(string from, string to) 
{ 
    lock (_thisLock) 
    { 
    if (File.Exists(from)) 
    { 
     File.Copy(from, to, true); 
     return; 
    } 
    Logger.Write("File does not exists"); 
    } 
} 

고객은 응용 프로그램이 충돌하지 않고 파일을 복사하지 않으며 로그를 쓰지 않는다고 말합니다. 로거 유형은 Microsoft.Practices.EnterpriseLibrary.Logging.Logger입니다.

+0

"보낸 사람"파일이 존재하지 않는다면 아무 일도하지 않을 것입니다. 문제 ... – Paolo

+0

로거 구성을 다시 확인할 수 있습니까? –

답변

3

물론 파일이 존재하지 않는 경우 - (!File.Exists) - 그러면 File.Copy 통화에 도달하지 않습니다.

Logger.Write은 예외로 간주되지 않습니다.

업데이트가 제안하는대로 로그에 아무것도없는 경우 Logger.Write 기능을 다시 확인합니다. 올바르게 구현 되었습니까? 그 메소드 내에서 던져지고 처리되는 예외가 있습니까? 그것은 예외를 던지지 않고 File.Copy보다 실패 할 가능성이 높습니다.

+0

로거 유형은 Microsoft.Practices.EnterpriseLibrary.Logging.Logger입니다. – Alexander

+0

그러면 로거를 올바르게 구성해야합니다. MSEL 로깅 프레임 워크 사용에 대한 자세한 내용은 http://www.codeproject.com/KB/architecture/GetLoggingWithEntLib.aspx를 참조하십시오. – Jaymz

0

파일이 존재하지 않고 더 로거 펜더가 구성되어 있지 않은 경우에, 당신이 설명하는 상황이 발생할 수는 - 오류, 당신은 꽤 몇 가지 예외를 throw 것을 볼 수 있습니다 MSDN for File.Copy보고 어떤 기록

0

을 즉 없습니다 . 스택 위에있는 예외를 캡쳐하는 것이 예외/오류를 올바르게 처리하고 단순히 그것을 삼키지 않도록하십시오.