L'utilisation ST_Contains
de la where
clause in me donne parfois des messages d'erreur comme
ERROR: GEOSContains: TopologyException: side location conflict at 37.3706 55.7882
Pour l'instant, je ne peux pas garantir la validité de chaque géométrie dans la base de données, en utilisant des outils d'importation tiers, je détecte donc toutes les exceptions:
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;
Je voudrais savoir où appartiennent vraiment les exceptions comme TopologyException et quelles conditions d'exception dois-je utiliser à la place OTHERS
?
la source