Usually the error dialog shows the root cause of an exception as first Exception, because it was the first occured Exception, e.g.

  try
  {
    throw new Exception("Root");
  }
  catch (Exception e)
  {
    try
    {
      throw new Exception("Middle", e);
    }
    catch (Exception ex)
    {
      throw new Exception("Top", ex)
    }
  }

The error dialog would show Root as message. If you want to show Top as message, simply use ClientException. The exception is a simple wrapper for another cause. If used, the last exception will be the first. In our example it would be Top.