Χονδρικά, τo OverflowException έχει σχέση με μαθηματικά operations ενώ στο ArgumentOutOfRangeException η τιμή του argument που περνάς, δεν είναι μέσα σε επιτρεπτά όρια.
Δηλαδή το
Dim source As Integer() = {10, 20, 30}
Dim dest As Integer() = {0, 0, 0}
Array.Copy(source , dest , -1)
Θα σου δώσει ArgumentOutOfRangeException γιατί στο 3ο argument της Copy δεν επιτρέπονται αρνητικές τιμές. Ενώ το παρακάτω θα σου δώσει OverflowException
Dim someDecimal As Decimal = 300D
Console.WriteLine(Decimal.ToByte(someDecimal))
Vir prudens non contra ventum mingit