Estábamos discutiendo con nuestros compañeros de trabajo sobre lo que significa si el nombre del método comienza con "Probar".
Hubo las siguientes opiniones:
- Use "Probar" cuando el método pueda devolver un valor nulo.
- Use "Probar" cuando el método no arroje una excepción.
¿Cuál es la definición oficial? ¿Qué dice "Probar" en el nombre del método? ¿Hay alguna directriz oficial sobre esto?
c#
naming-conventions
ms007
fuente
fuente

Respuestas:
Esto se conoce como el patrón TryParse y ha sido documentado por Microsoft. La página oficial de Excepciones y rendimiento de MSDN dice :
Por lo tanto, si tiene un código para el que un caso de uso regular significaría que podría arrojar una excepción (como analizar un int), el patrón TryParse tiene sentido.
fuente
(Corregido) Existe una directriz oficial, como sugirió Erik.
Cuando veo el
TrySomethingmétodo, lo asumoboolSomethingmétodo que me permite manejar cualquier excepción yo mismo. (editar, sugerido por Jesse Webb)fuente
TryFoométodo, habrá unFoométodo similar que me permita manejar cualquier `` excepción yo mismo. Las firmas de estos métodos probablemente serán diferentes, por lo que sus usos no son intercambiables sin otros cambios de código.Creo que deberías usar
trycuando quieras continuar. No importa que un método devuelva algún valor o no.Caso 1: si vuelve bien, puede proceder de alguna manera.
Caso 2: si no regresa: todavía está bien; puedes proceder de otra manera.
Y si espera algún valor como resultado de ese método, use el
outparámetro.Ejemplo
fuente
Debe usar "Probar" en el nombre del método, cuando desee manifestar el hecho de que la invocación del método puede producir un resultado no válido. Siguiendo el estándar .NET, por cierto, no es una función que genera una excepción, sino la función que devuelve algo
VALIDoNON_VALID, desde la perspectiva del programa, valor.Al final, se trata de una convención de nomenclatura que decides usar en tu grupo.
fuente
Asegúrese de incluir
tryen su nombre de método si:bool TrySomething(input, out yourReturn)Básicamente, si usamos
try-methods solo obtenemos un resultado booleano.Entonces, el siguiente código no arrojará ninguna excepción:
Mientras que este código puede (y en este caso lo hará) lanzar excepciones:
Usar métodos Try es una forma más segura y más defensiva de codificar. Además, el fragmento de código # 2 requiere más rendimiento para ejecutarse si no es un número entero.
fuente
int number = int.Parse(input);si desea que sea más significativo en este contexto.int number;declaración antes del bloque try y lanumber = ...asignación.TryLoadFile(path, out file)woah, fuera de la RAM. Por lo tanto, la persona que llama no esperaría errores por una ruta incorrecta o acceso denegado, sino una excepción por las cosas más complicadas que también podrían salir mal. Y documentarlo.El tío Bob da el siguiente ejemplo en su libro Clean Code . Siempre que esperemos que se produzca una excepción, podemos usar el
Tryprefijo del nombre de un método:Y luego (adaptado):
El
tryToShutDownmétodo no realiza ningún manejo de errores, porque es responsabilidad delsendShutDownmétodo.los
TryParsepatrón de Microsoft viola la directriz de código limpio que dice que debemos evitar los parámetros de salida.Si no estamos desarrollando una nueva versión de C #, no tenemos que cumplir con todas las pautas de Microsoft. A veces no son los mejores.
fuente