Quando utilizzare un’affermazione e quando utilizzare un’eccezione

La maggior parte delle volte userò un’eccezione per verificare una condizione nel mio codice, mi chiedo quando è il momento giusto per usare un’asserzione?

Per esempio,

Group group=null; try{ group = service().getGroup("abc"); }catch(Exception e){ //I dont log error because I know whenever error occur mean group not found } if(group !=null) { //do something } 

Potresti indicare in che modo un’asserzione si inserisce qui? Dovrei usare un’affermazione?

Sembra che non utilizzi mai asserzioni nel codice di produzione e vedo solo asserzioni nei test unitari. So che nella maggior parte dei casi, posso solo usare l’eccezione per fare il controllo come sopra, ma voglio sapere il modo appropriato per farlo “professionalmente”.