2011-04-20 4 views
2

가능한 중복 예외를 던지는 :
how to use Java-style throws keyword in C#?는 C#에서

나는 순간에 직장 배치에 오전, 및 C#을하고. 나는 우리가 주로 자바를 가르쳐 왔던 유니 마무리에서 1 년 떨어져 있습니다.

public void saveToFile(String fileName) throws IOException 

는이 작업을 수행하지만, 내 자신의 사용자 정의 예외 C#에서 유사한 구문이 있나요 :

은 내가 사용하는 것이 자바의 확인이 끝난 예외를 던질려고하면?

감사합니다.

답변

0

Noop. 너는 catchthrow이어야합니다. 또는 새로운 예외로 포장하고 throw.

public void saveToFile(string fileName) 
{ 
    try 
    { 
     // your code 
    } 
    catch(Exception ex) 
    { 
     throw; 
     //or: throw new Exception("Whoops", ex); 
    } 
} 
+1

아아 :

public class MyException :Exception { public int code { get; set; } public MyException(int c) { code = c; } } 

그런 다음 코드에서 당신은 단순히 그것의 인스턴스를 던질거야. 이제까지'던짐 ex'을하지 말라. 그냥 던져; 충분합니다. 'ex'를 다시 던지면 스택 추적을 잃게됩니다. –

+0

@ 마이크, 좋은 지적입니다! 코드가 변경되었습니다. –

+0

굉장해! Downvote retracted. –

4

C#에서는 함수가 throw 할 수있는 예외를 선언하지 않습니다. 규칙적으로 함수를 선언하십시오.

public void saveToFile(string fileName) { 
    .... 
} 

예외를 던지는 것은 매우 쉽습니다. (예 : System.IO.IOException 등) 미리 정의 된 많은 예외는 던질 수있다 :

using System.IO 

... 

public void saveToFile(* string fileName) { 

    ... 
    throw new IOException() 
} 

사용자 정의 예외를 발생하려면

, 당신은 그것을 선언하고이 시스템에서 유래 있는지 확인해야합니다. 예외 클래스. 예외 클래스에는 원하는 모든 생성자, 속성 또는 멤버가있을 수 있습니다. 예 : 아니,

... 
throw new MyException(666); 
+0

및 예외 클래스의 ToString을 재정의 할 수 있습니다.) – ricki