Oi Daniela,
Precisamos tratar essas exceções no EP08?
Não.
Se sim, de que forma?
Entretanto, eu gosto de colocar testes no início de cada função.
Por exemplo:
void put(BinarySearchST st, const void *key, size_t nKey, const void *val, size_t nVal) { if (st == NULL) { ERROR("put(): argument ST is null"); return; } if (key == NULL) { ERROR("put(): argument KEY is null"); return; } [...] }
Gosto que o programa grite assim que ocorreu algo estranho e não simplesmente exploda na minha cara com uma linha escrita `segmentation fault`.
Com ponteiros, muitas vezes, quando o programa explode em algum ponto o erro, na verdade, foi a "long long time ago in a galaxy far far away..."