La domanda: è considerata una pratica migliore l'utilizzo di tipi / sottotipi derivati o l'utilizzo di condizioni e gestione delle eccezioni per limitare gli input accettabili per un sottoprogramma in Ada? Capisco che in Ada2012 puoi utilizzare i contratti, ma che dire delle versioni precedenti come Ada95?
Il contesto: Voglio creare una serie di procedure che possono leggere / scrivere campi specifici in un pacchetto (rappresentato da un array di byte senza segno privato) per essere trasmessi da un dispositivo incorporato a un ASIC . Molti campi hanno dimensioni diverse e non si allineano con i limiti dei byte, quindi l'utilizzo di tipi standard consentirebbe a un programma che utilizza queste procedure di immettere valori illegali se deselezionato.
Note extra: Al di fuori della manipolazione del contenuto del pacchetto tramite questi sottoprogrammi, questi tipi non verrebbero utilizzati altrove. Inoltre, se fa la differenza, questo codice verrebbe utilizzato in un sistema critico per la sicurezza.