かなりの共有コードを使用するアプリケーション「スイート」を取り上げようとしていますが、これが方法でない場合は、私に知らせてください。呼び出し元のクラスライブラリのハンドル例外(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)
を持っています。
コードを正しくフォーマットするように注意してください。 [mvce](http://stackoverflow.com/help/mcve)について読むと、より良い質問をしたり、より正確な回答を得るのに役立ちます。 –