Tendrías que tener el código entre un try/catch para capturar las excepciones. Igualmente, el fallo está en que, en algún lugar, se está destruyendo la variable conn. Lo ideal es comprobar si es null y volvera a instanciar:
Código:
if (conn == null)
conn = new SqlConnection(connectionString);
conn.Open();
// El resto del código de la función