IRONSOFTWAREHOME

C#'de QR Kod Hata Mesajlarını Nasıl Yönetirim?

Curtis Chau
Curtis Chau
Updated: 9 Mayıs 2026

IronQR'nin hata yönetimi, okuma ve yazma hatalarını yakalamanıza, tanı koyma kayıtlarını almanıza ve her taramadan net sonuçlar elde etmenize yardımcı olur. Açık kontroller eklemezseniz, hem boş bir sonuç hem de bozuk bir dosya hiçbir şey döndürmeyecek ve yanlış gidenin ne olduğunu bilemeyeceksiniz. Hedeflenmiş istisna yönetimi ve tanı koyma kaydı ekleyerek, sessiz hataları faydalı geri bildirimlere dönüştürebilirsiniz. Bu kılavuz, boş sonuçları nasıl yöneteceğinizi, yazma zamanında oluşan istisnaları nasıl yöneteceğinizi ve toplu işlem için yapılandırılmış bir kayıt sarmalayıcısı nasıl oluşturacağınızı açıklar.

Hızlı Başlangıç: QR Kod Hatalarını Yönetin

QR okuma işlemlerini try-catch bloğunda sarın ve dosya ve kod çözme hataları için tanılama bilgilerini kaydedin.

  1. 1Install IronQR with NuGet Package Manager

    PM > Install-Package IronQR

  2. 2Bu kod parçacığını kopyalayın ve çalıştırın.

    using IronQr;
    using IronSoftware.Drawing;
    
    try
    {
        var input = new QrImageInput(AnyBitmap.FromFile("label.png"));
        var results = new QrReader().Read(input);
        Console.WriteLine($"Found {results.Count()} QR code(s)");
    }
    catch (IOException ex)
    {
        Console.Error.WriteLine($"File error: {ex.Message}");
    }
    C#
  3. 3Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronQR kullanmaya başlayın
    arrow pointer

Okuma Hatalarını ve Boş Sonuçları Yönetme

Tanı koyma kaydı olmadan, boş bir sonuç ve bozuk bir dosya çağıran kişiye aynı şekilde görünür. Aşağıdaki örnek, dosya erişim hatalarını algılar ve tarama sonuç döndürmezse uyarı verir.

Giriş

Bu QR örneği girişi diskte mevcuttur. Kullanıcının dosyayı alıp kod çözdüğü ve dosya yolunun yanlış olduğu senaryoları simüle edeceğiz.

https://ironsoftware.com/qr/scan-1 adresini kodlayan geçerli QR kod girişi
using IronQr;
using IronSoftware.Drawing;

string filePath = "damaged-scan.png";

try
{
    // File-level failure throws IOException or FileNotFoundException
    var inputBmp = AnyBitmap.FromFile(filePath);
    var imageInput = new QrImageInput(inputBmp);

    var reader = new QrReader();
    IEnumerable<QrResult> results = reader.Read(imageInput);

    if (!results.Any())
    {
        // Not an exception — but a diagnostic event worth logging
        Console.Error.WriteLine($"[WARN] No QR codes found in: {filePath}");
        Console.Error.WriteLine($"  Action: Verify image quality or try a different scan");
    }
    else
    {
        foreach (QrResult result in results)
        {
            Console.WriteLine($"[{result.QrType}] {result.Value}");
        }
    }
}
catch (FileNotFoundException)
{
    Console.Error.WriteLine($"[ERROR] File not found: {filePath}");
}
catch (IOException ex)
{
    Console.Error.WriteLine($"[ERROR] Cannot read file: {filePath}{ex.Message}");
}
catch (Exception ex)
{
    Console.Error.WriteLine($"[ERROR] Unexpected failure reading {filePath}: {ex.GetType().Name}{ex.Message}");
}

Çıktı

Başarılı bir QR kod okuması için terminal çıkışı [QRCode] https://ironsoftware.com/qr/scan-1 gösteriyor
Lütfen dikkate alın: Başarılı bir okuma sadece QR kod değerini döndürecek, ancak çalışma sırasında bir hata oluşursa, aşağıda gösterilen istisna mesajı veya uyarıları gösterecektir.

Aşağıdaki konsol, boş sonuç durumunu için bir [WARN] ve eksik dosya için bir [ERROR] gösterir, her biri için dosya yolu ve önerilen bir işlem ile.

Damaged-scan.png içinde QR kodu bulunamadığı için WARN ve eksik-label.png için dosya bulunamadığı için HATA gösteren terminal çıkışı

Yazma Hatalarını Yönetme

QrWriter.Write 'a null geçirilmesi bir IronQrEncodingException tetikler. Konfigüre edilmiş hata düzeltme seviyesi için kapasiteyi aşan veriler de atar, çünkü daha yüksek düzeltme seviyeleri mevcut veri kapasitesini azaltır.

Giriş

Aşağıdaki iki giriş değişkeni, başarısızlık senaryolarını tanımlar: nullContent, null ve oversizedContent en yüksek düzeltme seviyesinde QR kapasitesini aşan 5000 karakterlik bir dizedir.

using IronQr;

string? content = null; // null throws IronQrEncodingException 
string oversizedContent = new string('A', 5000); // 5,000 chars exceeds QR capacity at Highest error correction level 

// Scenario 1: null input
try
{   
    QrCode qr = QrWriter.Write(content); // Input
}
catch (Exception ex)
{
    Console.Error.WriteLine($"[ERROR] Null content: {ex.GetType().Name}{ex.Message}"); // Output
}

// Scenario 2: data exceeds QR capacity at the configured error correction level
try
{
    var options = new QrOptions(QrErrorCorrectionLevel.Highest);
    QrCode qr = QrWriter.Write(oversizedContent, options); // Input
}
catch (Exception ex)
{
    Console.Error.WriteLine($"[ERROR] QR capacity exceeded: {ex.Message}"); // Output
    Console.Error.WriteLine($"  Input length: {oversizedContent.Length} chars");
    Console.Error.WriteLine($"  Action: Reduce content or lower error correction level");
}

Çıktı

Konsol her iki hata senaryosu için istisna türünü ve mesajını gösterir.

Null içerik QrWriter.Write'a geçtiğinde IronQrEncodingException gösteren terminal çıkışı

Girdi uzunluğunu, içerik kısaltılması veya daha düşük bir düzeltme seviyesi gerekip gerekmediğini belirlemek için istisna mesajıyla günlükleyin. Kullanıcı girdisi için, istisna yükünü azaltmak ve tanı koymayı geliştirmek amacıyla kodlamadan önce dizge uzunluğunu doğrulayın ve null değerleri kontrol edin.


QR Kod İşlemlerini Kayıt Altına Alma

Dahili tanılama bilgilerini yakalamak için IronSoftware.Logger kullanın. Her okuma işlemi için, dosya yolu, sonuç sayısı ve geçen zamanı JSON olarak kaydeden bir yardımcı fonksiyon uygulayarak tüm toplu işlem için net bir çıktı sağlayın.

Giriş

Paket, qr-scans/'dan dört geçerli QR kodu görüntüsü ve geçersiz baytlarla bir beşinci dosya, scan-05-broken.png içerir.

https://ironsoftware.com/qr/scan-1 adresini kodlayan QR kodu

Tarama 1

https://ironsoftware.com/qr/scan-2 adresini kodlayan QR kodu

Tarama 2

https://ironsoftware.com/qr/scan-3 adresini kodlayan QR kodu

Tarama 3

https://ironsoftware.com/qr/scan-4 adresini kodlayan QR kodu

Tarama 4

using IronQr;
using IronSoftware.Drawing;
using System.Diagnostics;

// Enable shared Iron Software logging for internal diagnostics
IronQr.Logging.Logger.LoggingMode = IronQr.Logging.Logger.LoggingModes.All;
IronQr.Logging.Logger.LogFilePath = "ironqr-debug.log";

// Reusable wrapper for structured observability
(IEnumerable<QrResult> Results, bool Success, string Error) ReadQrWithDiagnostics(string filePath)
{
    var sw = Stopwatch.StartNew();
    try
    {
        var input = new QrImageInput(AnyBitmap.FromFile(filePath));
        var results = new QrReader().Read(input).ToList();
        sw.Stop();

        Console.WriteLine($"{{\"op\":\"qr_read\",\"file\":\"{Path.GetFileName(filePath)}\","
            + $"\"status\":\"ok\",\"count\":{results.Count},\"ms\":{sw.ElapsedMilliseconds}}}");

        return (results, true, null);
    }
    catch (Exception ex)
    {
        sw.Stop();
        string error = $"{ex.GetType().Name}: {ex.Message}";

        Console.Error.WriteLine($"{{\"op\":\"qr_read\",\"file\":\"{Path.GetFileName(filePath)}\","
            + $"\"status\":\"error\",\"exception\":\"{ex.GetType().Name}\","
            + $"\"message\":\"{ex.Message}\",\"ms\":{sw.ElapsedMilliseconds}}}");

        return (Enumerable.Empty<QrResult>(), false, error);
    }
}

// Usage: process a batch with per-file isolation
string[] files = Directory.GetFiles("qr-scans/", "*.png");
int ok = 0, fail = 0;

foreach (string file in files)
{
    var (results, success, error) = ReadQrWithDiagnostics(file);
    if (success && results.Any()) ok++;
    else fail++;
}

Console.WriteLine($"\nBatch complete: {ok} success, {fail} failed/empty out of {files.Length} files");
C#

Çıktı

Konsol, her dosya için JSON günlük satırlarını gösterir: dört başarılı okuma ve kırık dosya için bir yapılandırılmış hata girişi, ardından toplu işlem özetini. IronSoftware.Logger, aynı anda IronQR-debug.log'ya dahili tanılama bilgilerini yazar. Tam hata ayıklama günlüğünü buradan indirebilirsiniz.

4 başarılı okuma ve 1 hatayı gösteren JSON yapılandırılmış günlük satırları ve toplu işlem tamamlanma özeti gösteren terminal çıkışı

JSON çıktısı doğrudan log toplama araçlarına beslenir: kap container tabanlı bir dağıtımda Fluentd, Datadog veya CloudWatch'a stdout iletir. ms alanı gecikme gerilemelerini ortaya çıkarır ve hata ayıklama günlüğü, sarmalayıcının yaptığı iç işlemleri kaydeder.


Daha Fazla Okuma

Üretime hazır olduğunuzda lisanslama seçeneklerini görüntüleyin.

Tam DetailedErrorMessagesTest konsol uygulama projesini indirmek için buraya tıklayın.

Sıkça Sorulan Sorular

C#'de QR kodu okuma/yazma işlemlerini nasıl hata ayıklayabilirim?

IronQR kullanarak C#'de QR kodu okuma/yazma işlemlerini hata ayıklayabilirsiniz, istisnaları yakalayarak, tanılamaları kaydederek ve yapılandırılmış çıktı ile toplu işlem izleyerek.

QR kodlarını C#'de işlerken bir hata ile karşılaşırsam ne yapmalıyım?

C#'de QR kodlarını işlerken bir hata ile karşılaşırsanız, IronQR kullanarak istisnaları yakalayın ve yönetin. Bu, sorunları etkili bir şekilde tanımlamanıza ve çözmenize olanak tanır.

IronQR, QR kodu toplu işlemlerini izlemeye nasıl yardımcı olur?

IronQR, QR kodu toplu işlemlerini izlemek için yapılandırılmış çıktı sağlayarak, süreç sırasında herhangi bir hata veya verimsizlik durumunu tanımlamanıza ve çözmenize yardımcı olur.

IronQR, QR kodu işlemleri için tanılamaları kaydedebilir mi?

Evet, IronQR, C# uygulamalarınızdaki performansı ve hataları izlemek ve analiz etmek için QR kodu işlemleri için tanılamaları kaydedebilir.

IronQR ile QR kodu işlemede yaygın istisnalar nelerdir?

IronQR ile QR kodu işlemede yaygın istisnalar, okunamayan QR kodları ve yanlış format yönetimiyle ilgili sorunları içerir ve bu sorunlar C# kodunuzda doğru istisna yönetimi ile yönetilebilir.

How can I improve error detection during QR code processing with IronQR?

Improve error detection by implementing logging that captures detailed information on file paths, operation status, result counts, and execution time. This data supports easier debugging and system observability.

Can IronQR's logging output be integrated with log aggregation tools?

Yes, the JSON output from IronQR can be fed directly into log aggregation tools such as Fluentd, Datadog, or CloudWatch, making it suitable for containerized deployments and enhancing monitoring capabilities.

What approach does IronQR suggest for handling batch QR code operations?

IronQR recommends processing each file in isolation, logging the results for each read operation to help identify errors, and providing a complete batch summary that tallies successes and failures.

How does IronQR assist in diagnosing file-level failures during QR code scans?

IronQR detects file-level failures like IOException and FileNotFoundException, providing descriptive error messages which can be logged to pinpoint issues such as incorrect file paths or unreadable files.

Why is it important to wrap QR read/write calls in try-catch blocks?

Wrapping read/write operations in try-catch blocks ensures that failures do not crash the application, allowing you to handle exceptions gracefully, log necessary diagnostics, and guide the user with useful messages.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

Başlamaya Hazır mısınız?

Nuget Downloads 74,386Sürüm:2026.9yeni yayınlandı

Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez
PDF için C# NuGet Kütüphanesi
NuGet ile yükleyin

Sürüm: 2026.9

PM > Install-Package IronQR
nuget.org/packages/IronQR/
  1. Çözüm Gezgini'nde Referanslar'a sağ tıklayın, NuGet Paketlerini Yönet
  2. Gözat'ı seçin ve "IronQR" arayın
  3. Paketi seçin ve yükleyin
C# PDF DLL
DLL İndir

Sürüm: 2026.9

  1. IronQR'yi ~/Libs gibi Çözüm dizininde bir konuma indirin ve çıkartın
  2. Visual Studio Çözüm Gezgini'nde, Referanslar'a sağ tıklayın. Gözat'ı seçin, "IronQR.dll"

$999 'den başlayan lisanslar

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez