mas o negocio é que se o se um deles tiver nulo eu seto com ou ex que outro atributo, desde que ele não esteja nulo. Caso todos sejam nulos eu lanço uma excessão.
Vc pode usar if para testar se esta null, e um contador para ver quantos que estão null e em seguida verificar se esse contador é igual a 3(no caso) sendo assim vc lança uma exception.
ex: