К сожалению, математическая библиотека C не знает об исключениях C ++. Скорее всего, вы видите необработанное исключение с плавающей точкой из вашего оборудования. atan2
чрезвычайно простителен для своих входных данных: единственный недопустимый регистр - это (0, 0), поэтому все, что вам нужно сделать, это проверить, что один аргумент не равен нулю, прежде чем делать вызов функции для предотвращения исключения.
РЕДАКТИРОВАТЬ: Затем вам нужно предотвратить недопустимый тета-компонент при вызове функции. О чем говорит документация сторонней библиотеки, когда можно звонить theta
?