Die Verwendung der ST_Contains
in- where
Klausel gibt mir manchmal Fehlermeldungen wie
ERROR: GEOSContains: TopologyException: side location conflict at 37.3706 55.7882
Im Moment kann ich nicht die Gültigkeit für jede Geometrie in der Datenbank mit Importwerkzeugen von Drittanbietern garantieren, daher fange ich einfach jede Ausnahme ab:
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;
Ich möchte wissen, wo Ausnahmen wie TopologyException wirklich hingehören und welche Ausnahmebedingungen ich anstelle von verwenden soll OTHERS
.
quelle