7
Bir istisna oluşturduğumda özel koşullar oluşturmak mümkün mü? Aşağıdaki örneği inceleyelim: BuradaPostgreSQL özel kural dışı durum koşulları
BEGIN
y := x/0;
EXCEPTION
WHEN division_by_zero THEN
RAISE NOTICE 'caught division_by_zero';
RETURN x;
END;
Ben durum yakalamak için 'division_by_zero' koşulunu kullanın.
BEGIN
[...]
RAISE custom_condition;
EXCEPTION
WHEN custom_condition THEN
[...]
END;
Mümkün standart istisnalar karışmaz böylece: ben yapmak istiyorum ne böyle bir şeydir. Ben sadece yapabilirim: = 1/0; ve division_by_zero'yu yakalayın, ancak doğru görünmüyor.
teşekkürler! Bir düzeltme ile çalışır - * errcode * parametresi tam olarak beş basamaklı/büyük harfli ASCII karakterleri olmalıdır, aksi halde bir hataya neden olur ("geçersiz SQLSTATE kodu"). İşte bağlantınızdan bir not: 'Not: SQLSTATE koduyla bir hata kodu belirlerken, önceden tanımlanmış hata kodları ile sınırlı değildir, ancak beş basamak ve/veya büyük harf ASCII harflerinden oluşan herhangi bir hata kodunu seçebilirsiniz. 00000'den fazla hata kodları atmaktan kaçınmanız tavsiye edilir, çünkü bunlar kategori kodlarıdır ve yalnızca tüm kategoriyi yakalayarak yakalanabilirler. ' – Snifff
@Sniff: Teşekkürler - Hatalı kodlama karakterlerini düzeltdim – Tometzky
@Tometzky: exception.diagnostic altındaki hangi özellik 'Bar yasaklandı' gösterisi altında? MESSAGE_TEXT mi yoksa PG_EXCEPTION_DETAIL mi yoksa PG_EXCEPTION_HINT mi? (dokümanlar: http://goo.gl/F5w1y) – obimod