繁体   English   中英

如何让我的 Xamarin 应用程序在发生错误时发送电子邮件?

[英]How can I make my Xamarin app send an email whenever an error occurs?

我的 Xamarin 应用的发布版本正在由非开发人员测试,这有时意味着测试人员无法向我传达他们遇到的错误的详细信息。

我想实现一些在发生崩溃或错误时执行的代码,并向我的地址发送一封包含错误信息的电子邮件,以帮助我进行调试。 我已经编写了一个电子邮件方法(见下文),但我想知道如何在抛出未处理的异常时调用它,而不是将每个可能的方法都包装在 try-catch 中。

public static void Email(string htmlString)
        {
            try
            {
                MailMessage msg = new MailMessage();
                SmtpClient smtp = new SmtpClient();
                msg.From = new MailAddress("email here");
                msg.To.Add(new MailAddress("other email here"));
                msg.Subject = "Error Report";
                msg.IsBodyHtml = true;
                msg.Body = htmlString;
                smtp.Port = 1234;
                smtp.Host = "smtp here";
                smtp.EnableSsl = true;
                smtp.UseDefaultCredentials = false;
                smtp.Credentials = new NetworkCredential("email", "password");
                smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
                smtp.Send(msg);
            }
            catch (Exception)
            {

            }
        }

在 Xamarin 应用程序中捕获错误的基本方法是使用 try/catch 块。 尝试/捕获很容易获得。

您可以执行以下操作。

private void Send_Clicked(object sender, EventArgs e)
    {
        try
        {
            .......
        }
        catch(Exception ex)
        {
            Email(ex.ToString());
        }

    }
    public static void Email(string htmlString)
    {
        MailMessage msg = new MailMessage();
        SmtpClient smtp = new SmtpClient();
        msg.From = new MailAddress("email here");
        msg.To.Add(new MailAddress("other email here"));
        msg.Subject = "Error Report";
        msg.IsBodyHtml = true;
        msg.Body = htmlString;
        smtp.Port = 1234;
        smtp.Host = "smtp here";
        smtp.EnableSsl = true;
        smtp.UseDefaultCredentials = false;
        smtp.Credentials = new NetworkCredential("email", "password");
        smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
        smtp.Send(msg);        
    }

Xamarin(Mono) 通过使用 try-catch 包围所有内容并引发 Unhandled 事件在内部“处理”那些未捕获的异常。

从线程解释。 努力理解 Xamarin 异常处理

你可以检查链接。 它提供了一种从日志文件中获取错误日志的方法。 使用 Xamarin Android 时的异常

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM