Menggunakan ST_Contains
dalam where
klausa terkadang memberi saya pesan kesalahan seperti
ERROR: GEOSContains: TopologyException: side location conflict at 37.3706 55.7882
Untuk saat ini saya tidak dapat menjamin validitas untuk setiap geometri di DB, menggunakan alat impor pihak ketiga, jadi saya hanya menangkap setiap pengecualian:
CREATE OR REPLACE FUNCTION safe_st_contains(geom1 geometry, geom2 geometry)
RETURNS BOOL AS
$$
BEGIN
RETURN ST_Contains($1, $2);
EXCEPTION WHEN others THEN
RAISE NOTICE 'TopologyException'; -- this is a guess
RETURN FALSE;
END;
$$
LANGUAGE plpgsql;
Saya ingin tahu di mana pengecualian seperti TopologyException benar-benar berada dan kondisi pengecualian mana yang harus saya gunakan, bukan OTHERS
?
sumber