2016-09-01 5 views
-1

かなりの共有コードを使用するアプリケーション「スイート」を取り上げようとしていますが、これが方法でない場合は、私に知らせてください。呼び出し元のクラスライブラリのハンドル例外(C#)

VS2015には1つの解決策がありますが、これには4つ、おそらく5つのプロジェクトが含まれます。 2つの異なるけれども類似したクライアントアプリ、サーバアプリ(まだこれを解決する必要があります)、共有ライブラリ(別のものを追加するかもしれません)。

今は自分のライブラリ内のクライアントに接続するためのコードがあります。 私のWinFormアプリケーションはこのコードを呼び出します。このコードは「動作します」(サーバーアプリケーションを開発する必要がありますが、接続しようとしています)。しかし、私はキャッチして、何がうまくいかないのかをユーザーに知らせるためにDLLによってスローされた例外をうまく処理したい。私は、エラーをキャッチするさまざまな方法を試してみました

public class CarbonCats_Main 
{ 
    private static ClientConnection clientcon; 

    private void btnConnect_Click(object sender, EventArgs e) 
    { 
     //placeholder for making the connection to "Mother Base" 
     int port = Int32.Parse(txtPort.Text); 
     System.Net.IPAddress ipA = System.Net.IPAddress.Parse(txtServer.Text); 
     System.Net.IPEndPoint ipE = new System.Net.IPEndPoint(ipA,port); 

     try 
     { 
      clientcon.ConnectToServer(ipE, "Cat", txtName.Text);     
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("An error occurred! are you sure the server is online? \n" + 
      "Here is more information: \n" + ex.Message, "Carbon Cats", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error); 
     } 
    } 
} 

ClientConnect.csカーボン猫と呼ばれるプロジェクトで

public class ClientConnection 
{ 
    public void ConnectToServer(IPEndPoint ip, string type, string name) 
    {  
     clientSock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
     ipEndPoint = ip; 
     strName = name; 
     strTypeOfCLient = type; 

     clientSock.BeginConnect(ip, new AsyncCallback(LoginToServer), clientSock); 
    } 

    public void LoginToServer(IAsyncResult AR) 
    { 
     try 
     { 
      clientSock.EndConnect(AR); // This statement is where it goes wrong. 
     } 
     catch (Exception) 
     { 
      throw; 
     } 
    } 
} 

CarbonCats_Main.cs( - 周りのいずれかで、両方の周りのtry-catchをラップ

スローされた例外を実際に処理するにはどうすればいいですか(この場合は常にになります)。はまだサーバーを見つけることができません。しかし、私はコードを掃除してそれをユーザーに証明させると、もっと多くのものを扱うためにException(Types)を持っています。

+0

コードを正しくフォーマットするように注意してください。 [mvce](http://stackoverflow.com/help/mcve)について読むと、より良い質問をしたり、より正確な回答を得るのに役立ちます。 –

答えて

関連する問題