Xamarin.Forms                
            उपवाद सम्भालना
        
        
            
    खोज…
IOS पर अपवादों के बारे में रिपोर्ट करने का एक तरीका
 IOS प्रोजेक्ट में Main.cs फ़ाइल में जाएं और नीचे मौजूद कोड की तरह परिवर्तन करें: 
    static void Main(string[] args)
    {
        try
        {
            UIApplication.Main(args, null, "AppDelegate");
        }
        catch (Exception ex)
        {
            Debug.WriteLine("iOS Main Exception: {0}", ex);
            var watson = new LittleWatson();
            watson.SaveReport(ex);
        }
    }
 पोर्टेबल कोड में उपयोग किया जाने वाला ILittleWatson इंटरफ़ेस, इस तरह दिख सकता है: 
public interface ILittleWatson
{
    Task<bool> SendReport();
    void SaveReport(Exception ex);
}
IOS प्रोजेक्ट के लिए कार्यान्वयन:
[assembly: Xamarin.Forms.Dependency(typeof(LittleWatson))]
namespace SomeNamespace
{
    public class LittleWatson : ILittleWatson
    {
        private const string FileName = "Report.txt";
        private readonly static string DocumentsFolder;
        private readonly static string FilePath;
        private TaskCompletionSource<bool> _sendingTask;
        static LittleWatson()
        {
            DocumentsFolder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            FilePath = Path.Combine(DocumentsFolder, FileName);
        }
        public async Task<bool> SendReport()
        {
            _sendingTask = new TaskCompletionSource<bool>();
            try
            {
                var text = File.ReadAllText(FilePath);
                File.Delete(FilePath);
                if (MFMailComposeViewController.CanSendMail)
                {
                    var email = ""; // Put receiver email here.
                    var mailController = new MFMailComposeViewController();
                    mailController.SetToRecipients(new string[] { email });
                    mailController.SetSubject("iPhone error");
                    mailController.SetMessageBody(text, false);
                    mailController.Finished += (object s, MFComposeResultEventArgs args) =>
                    {
                        args.Controller.DismissViewController(true, null);
                        _sendingTask.TrySetResult(true);
                    };
                    ShowViewController(mailController);
                }
            }
            catch (FileNotFoundException)
            {
                // No errors found.
                _sendingTask.TrySetResult(false);
            }
            return await _sendingTask.Task;
        }
        public void SaveReport(Exception ex)
        {
            var exceptionInfo = $"{ex.Message} - {ex.StackTrace}";
            File.WriteAllText(FilePath, exceptionInfo);
        }
        private static void ShowViewController(UIViewController controller)
        {
            var topController = UIApplication.SharedApplication.KeyWindow.RootViewController;
            while (topController.PresentedViewController != null)
            {
                topController = topController.PresentedViewController;
            }
            topController.PresentViewController(controller, true, null);
        }
    }
}
और फिर, कहीं, जहां ऐप शुरू होता है:
        var watson = DependencyService.Get<ILittleWatson>();
        if (watson != null)
        {
            await watson.SendReport();
        }
Modified text is an extract of the original Stack Overflow Documentation
        के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
        से संबद्ध नहीं है Stack Overflow