🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / C# RMOS / try catch blogunda catch e girerse ekrana hangi class ve hangi metot ve kaçıncı satırda hata aldığını söyleyen kod

1-) C# RMOS - try catch blogunda catch e girerse ekrana hangi class ve hangi metot ve kaçıncı satırda hata aldığını söyleyen kod

 

public static class ErrorLogger

{

    public static void LogError(Exception ex)

    {

        // Exception bilgilerini al

        string className = ex.TargetSite.DeclaringType.FullName;

        string methodName = ex.TargetSite.Name;

        int lineNumber = GetExceptionLineNumber(ex);

 

        string hatamesaj = $"Hata Oluştu!\nSınıf: {className}-> Metot: {methodName} -> Satır: {lineNumber}\n"+ex.Message;

        MessageBox.Show(hatamesaj);

    }

 

    private static int GetExceptionLineNumber(Exception ex)

    {

        var stackTrace = new System.Diagnostics.StackTrace(ex, true);

        var frame = stackTrace.GetFrame(0);

        return frame.GetFileLineNumber();

    }

}

 

1. ErrorLogger.cs

 

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace Deneme1

{

    public static class ErrorLogger

    {

        public static void LogError(Exception ex)

        {

            // Exception bilgilerini al

            string className = ex.TargetSite.DeclaringType.FullName;

            string methodName = ex.TargetSite.Name;

            int lineNumber = GetExceptionLineNumber(ex);

 

            // Hata bilgilerini ekrana yazdır

            Console.WriteLine("Hata Oluştu!");

            Console.WriteLine("Sınıf: " + className);

            Console.WriteLine("Metot: " + methodName);

            Console.WriteLine("Satır: " + lineNumber);

        }

 

        private static int GetExceptionLineNumber(Exception ex)

        {

            var stackTrace = new System.Diagnostics.StackTrace(ex, true);

            var frame = stackTrace.GetFrame(0);

            return frame.GetFileLineNumber();

        }

    }

}

 

 

 

2.  KULLANIMI

 

 

   private void button1_Click(object sender, EventArgs e)

        {

            try

            {

                int sonuc = 1 / Convert.ToInt32("0");

            }

            catch (Exception ex)

            {

                ErrorLogger.LogError(ex);

            }

        }

 

 

 

3.  EKRAN ÇIKTISI

 

 

Exception thrown: 'System.DivideByZeroException' in Deneme1.exe

Hata Oluştu!

Sınıf: Deneme1.Form1

Metot: button1_Click

Satır: 24

 

 

 

EKRAN GÖRÜNTÜSÜ

 

 

 

 

 

 

TÜM HATALARI EKRANA BASAR ÇOK ÖNEMLİ BUNU PROGRAM.CS E EKLE

catch(Exception ex)

            {

                StringBuilder errorMessage = new StringBuilder();

                errorMessage.AppendLine("Hata Oluştu:");

                errorMessage.AppendLine("Message: " + ex.Message);

                errorMessage.AppendLine("StackTrace: " + ex.StackTrace);

 

                Exception innerEx = ex.InnerException;

                while (innerEx != null)

                {

                    errorMessage.AppendLine("Inner Exception: " + innerEx.Message);

                    innerEx = innerEx.InnerException;

                }

 

                MessageBox.Show(errorMessage.ToString(), "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error);

            }

 

 2024 Mart 29 Cuma
 1,062