Giriş Validasyonu ve Hata İşlemleri

Giriş Validasyonu ve Hata İşlemleri

Giriş Validasyonu ve Hata İşlemleri

Aspose.BarCode FOSS for Python validates all input data before encoding. Each symbology has a dedicated InputParser karakter setleri, uzunluk kısıtlamaları ve format kurallarını kontrol eden alt sınıf. doğrulama başarısız olduğunda kütüphane tipik istisnalar çıkarır. BarcodeError İlerleme sorunu, kodlama başarısızlıkları ve rendering sorunları arasında ayırt edebilir.


InputParser Layer ile ilgili bilgiler

Her simbol bir InputParser İletişim: Çağrı yaparken BarcodeService.generate(),Birincisi, üretici bir NormalizedPayload ya da yükseltmek InvalidInputError Bu veriler bu simbol için geçerli değilse.

from aspose_barcode_foss import BarcodeService

service = BarcodeService()

# Valid Code 128 input — passes the Code128InputParser
barcode = service.generate("code128", "VALID-DATA-001")

# Invalid EAN-13 input — too few digits
try:
    barcode = service.generate("ean13", "123")
except Exception as e:
    print(type(e).__name__, e)

Her simbol parser farklı kuralları doğrulamaktadır:

  • Code128InputParser - Tüm karakterlerin kod 128 karakter setleri tarafından desteklenen ASCII aralığında olduğunu kontrol eder.
  • Code39InputParser - Kod 39 taban veya tam ASCII alfabesi ile ilgili karakterleri doğrulamaktadır. Code39Options.full_ascii
  • Ean13InputParser - Tam olarak 12 veya 13 sayı sayısı gerektirir (13 numaralı kontrol sayısının)
  • Ean8InputParser 7 veya 8 sayı sayısı gerektirir.
  • QrInputParser - Seçilen kişiye karşı veri doğrulama QrEncodeMode (Sayı, alfabetik veya kanji)
  • UpcaInputParser 11 veya 12 sayı sayısı gerektirir.
  • UpceInputParser - Doğru 6, 7 veya 8 sayısal rakam gerektirir ve geçerli bir UPC-E desenine sahiptir.

BarcodeError Hierarşisi

Her türlü istisna, BarcodeError,Python’un içindeki genişlemesini sağlayan Exception.Hierarşinin farklı spesifik seviyelerde yakalama blokları sağlar:

ExceptionYükseldiğinde
BarcodeErrorTüm kütüphane istisnaları için temel sınıflar
InvalidInputErrorGiriş verileri doğrulama başarısız (yanlış karakterler, yanlış uzunluk)
EncodingErrorEtiket: validasyon geçtikten sonra logik kayıplar
RenderingErrorRenderer SVG veya PNG çıkışında bir hata ile karşılaşır
SymbologyNotFoundErrorSimbol adı kayıtlı değildir. SymbologyRegistry
UnsupportedCapabilityErrorİsteyen bir kapasite, simbol için kullanılamaz.
UnsupportedFeatureErrorBir özellik tanımlanır ama uygulanmaz.
from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss.errors import (
    BarcodeError,
    InvalidInputError,
    EncodingError,
    SymbologyNotFoundError,
)

service = BarcodeService()

try:
    barcode = service.generate("code128", "TEST-001")
    svg = barcode.to_svg()
except InvalidInputError as e:
    print(f"Input rejected: {e}")
except EncodingError as e:
    print(f"Encoding failed: {e}")
except SymbologyNotFoundError as e:
    print(f"Unknown symbology: {e}")
except BarcodeError as e:
    print(f"Barcode error: {e}")

Symbology isimleri

SymbologyNotFoundError Yükseldiğinde BarcodeService.generate() Kayıtlı olmayan bir simbol adı alınır. SymbologyRegistry Kanonik isim veya alias ile adları çözür, bu nedenle "code128", "Code128",ve "CODE128" Herkes aynı tanımla karar verir.

from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss.errors import SymbologyNotFoundError

service = BarcodeService()

try:
    barcode = service.generate("invalid_type", "data")
except SymbologyNotFoundError as e:
    print(f"Not found: {e}")

Digit Validasyon Kontrolü

EAN-13, Ean-8, UPC-A ve U PC-E sembolleri otomatik olarak kontrol sayısını hesaplar. bir kontrol sayı da dahil olmak üzere tam verileri iletiyorsanız, parser bunu hesaplanan değere karşı doğrulamaktadır. allow_check_digit_input Mülkiyet üzerinde Ean13Options ve Ean8Options Bu davranışları kontrol eder.

from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import Ean13Options

service = BarcodeService()

# 12 digits — check digit computed automatically
barcode = service.generate("ean13", "590123412345")

# 13 digits — parser verifies the 13th digit matches the computed value
barcode = service.generate(
    "ean13", "5901234123457",
    encode=Ean13Options(allow_check_digit_input=True),
)

İpuçları ve En İyi Uygulamalar

  • Catch InvalidInputError Kullanıcıya karşı giriş formları için, veriler simboloji gereksinimlerini karşılayamayacak
  • Kullanım BarcodeError bir yakalama olarak sadece hatalar türleri arasında ayırt etmenize gerek olmadığında
  • Simbololojinin adını, destekleyici yedi simbolonun karşısında (kod128, kod39, ean13, eAN8, qrcode, upca, upe) arayın önce kontrol edin. generate() kaçınmak için SymbologyNotFoundError
  • QR kodları için, set encoding_mode açıkça yoluyla QrOptions • Bilgiler ASCII olmayan karakterler içerirken,
  • Kütüphane, bunları manuel olarak sunmak yerine sayılar kontrol etmeye çalıştırır - bu yanlış anlaşmazlıklardan kaçınır.

ortak sorunlar

IssueCauseFix
InvalidInputError EAN-13 için12’den az sayıda veya sayı dışı karakter içerir.12 veya 13 sayı sayısı ile ilgili bilgiler
SymbologyNotFoundErrorSimbolik isimler (örneğin,. "code_128" Bunun yerine "code128")Kanonik adı kullanmadan
EncodingError 39 kodlarıBilgiler aşağıdaki yazıları içerir full_ascii=TrueSetleri Code39Options(full_ascii=True)
UnsupportedFeatureErrorTanımlanmış ama henüz uygulanmamış bir özellik çağırmakCheck known_limitations Simbolik Profilinde
InvalidInputError UPC-A için12’den fazla sayıya sahiptir.11 veya 12 sayı sayısı ile ilgili bilgiler

FAQ

Bir simbol adı oluşturmadan önce geçerli olup olmadığını nasıl kontrol edebilirim?

Kullanım BarcodeService.registry erişmek için The SymbologyRegistry.Çağrı get_definition() ve Catch SymbologyNotFoundError Adı kaydedilmemişse.

EAN çubuk kodları için dijital doğrulama kontrolü devre dışı bırakabilir miyim?

Parser her zaman tam uzunluk girişini sağladığınızda kontrol rakamlarını doğrulamaktadır (13 EAN-13, 8 Ean-8 için rakamı). Doğrulama önlemek için, yalnızca veri rakalarını (12 EEN-13.7 EN-8) ve kütüphanenin kontrol sayısını hesaplamasına izin verir.

İkili verileri 1D çubuk kodu sembolojisine aktarırsam ne olur?

InvalidInputError Kod 128, kod 39, EAN ve UPC sembolleri yalnızca metin verilerini kabul eder. ikili veriler için, QR kodu kullanın QrEncodeMode.BYTE.

Kütüphane QR kodları için veri uzunluğunu doğrulamaktadır?

QrInputParser QR versiyonunun kapasitesine uygun olduğunu doğrulamaktadır. herhangi bir versiyonu belirtilmezse, kütüphane verileri barındıran en küçük versiyi seçer.


API Referans Özetleri

Sınıf / YöntemDescription
InputParser.parse(data, options)Abstrak yöntem - girişleri doğrulamak ve normalleştirmek NormalizedPayload
Code128InputParser.parse(data, options)Kodu 128 giriş karakterini doğrulamaktadır.
Code39InputParser.parse(data, options)39 baz kodu veya tam ASCII girişini doğrulamaktadır.
Ean13InputParser.parse(data, options)EAN-13 sayım ve kontrol sayımı doğrulamaktadır.
Ean8InputParser.parse(data, options)EAN-8 sayısı ve kontrol sayısını doğrulamaktadır.
QrInputParser.parse(data, options)QR verilerini seçilen kodlama moduna karşı doğrulamaktadır.
UpcaInputParser.parse(data, options)UPC-A sayısı ile ilgili bilgiler
UpceInputParser.parse(data, options)UPC-E sayısı ve desenini doğrulamaktadır
BarcodeErrorBarkod Kütüphanesi için Temel Bir Üstün
InvalidInputErrorYasadışı giriş verileri için toplanan
EncodingErrorKodu başarısız olduğunda yükseltildi
RenderingErrorRendering başarısız olduğunda büyüdü
SymbologyNotFoundErrorKayıtlı olmayan simbol isimleri için yükseltilmiştir.
UnsupportedCapabilityErrorMevcut olmayan kapasiteye sahip olmak için
UnsupportedFeatureErrorUygulamayan özellikler için geliştirilmiştir.

See Also

 Türkçe