2009-11-11 22 views

Respuesta

24

No, siempre que el valor devuelto signifique lo que usted quería, puede regresar en cualquier momento. (asegúrese de haber borrado la memoria si está asignado).

5

Yo prefiero tener puntos pocas salidas en mi código, por lo que iba a escribir:

int rc = 1; 
try { 
    // some code 
} 
catch(...) { 
    rc = 0; 
} 
return rc; 

Me resulta más fácil de depurar y leer el código cuando sólo tengo que seguir la pista de una instrucción de retorno.

+5

Personalmente me parece mejor, pero también depende del tamaño de la función, a veces es más limpio tener múltiples puntos de salida (en mi humilde opinión) que procesar una gran cantidad de código si se ha alcanzado un estado de error. –

1

sugiero que si no sabe qué tipo de excepción arroja el código, puede hacerlo. Pero en este caso, el cliente debe tomar medidas en función del valor de retorno.

Pero sería mejor si crea una excepción definida por el usuario y la tira, para que el cliente pueda conocer lo que sucedió en realidad. Ese es el uso real de la excepción y se recomienda para el escritor de la biblioteca.

+5

Si no sabe qué excepción se produce, entonces no tiene nada que atrapar. Si detecta una excepción y no vuelve a tirar, será mejor que haya resuelto la causa original de la excepción, que puede ser memoria insuficiente, violación de acceso, error de bus, impresora en fuego o cualquier cantidad de otras cosas de las que nunca has oído hablar. Solo atrapa lo que estás esperando. Deje que todo lo demás vaya a la persona que llama. –

-1

es una buena práctica para que vuelva al final de la función, después del bloque try/catch.

+2

Decir que algo es una buena práctica no sirve de mucho sin una justificación lógica. –

Cuestiones relacionadas