如何从类中返回错误

时间:2014-02-24 02:37:19

标签: c# class imagemagick

我是c#的新手,我不知道我是否正确行事。我的问题是我需要从类(.dll)返回错误,但我不知道如何。它只返回true或false。这是我班级的代码:

namespace DigitalAssetConverter
{
    public class ConvertImage
    {
        public Boolean ImagePath(string filePath)
        {
            try
            {
                MagickReadSettings settings = new MagickReadSettings();
                settings.ColorSpace = ColorSpace.RGB;

                using (MagickImage image = new MagickImage(filePath))
                {
                    image.Read(filePath, settings);
                    image.Resize(500, 500);
                    image.Write(Path.ChangeExtension(filePath, ".jpg"));
                    return true;
                }
            }
            catch
            {
                return false;
            }
        }
    }
}

我这样用它:

  private void btnConvert_Click(object sender, EventArgs e)
    {
        ConvertImage ci = new ConvertImage();
        if (ci.ImagePath(@"C:\tryConvert\LP_10078.eps"))
        {
            MessageBox.Show("Success!");
        }
        else
        {
            MessageBox.Show("Failed.");
        }
    }

1 个答案:

答案 0 :(得分:5)

省略try/catch块并使返回类型为void:

public void ImagePath(string filePath)
{
    MagickReadSettings settings = new MagickReadSettings();
    settings.ColorSpace = ColorSpace.RGB;

    using (MagickImage image = new MagickImage(filePath))
    {
        image.Read(filePath, settings);
        image.Resize(500, 500);
        image.Write(Path.ChangeExtension(filePath, ".jpg"));
    }
}

异常(如果有的话)会自行冒出来,你可以在try/catch事件中放置一个btnConvert_Click块来处理它:

private void btnConvert_Click(object sender, EventArgs e)
{
    ConvertImage ci = new ConvertImage();

    try
    {
        ci.ImagePath(@"C:\tryConvert\LP_10078.eps")
        MessageBox.Show("Success!");
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}