If ratio is less than or equal to -1.0, or greater than or equial to 1.0, then you get a divide by zero error. But that wouldn"t be a valid triangle anyway, so an angle measurement would be meaningless.
on asin ratio
return atan(ratio/sqrt(1.0 - (ratio * ratio)))
36 South Court Sq
Newnan, GA 30263