Aprobado: Fortect
¿No es la respuesta que desea? Explore otras preguntas omitidas C # o haga su propia pregunta.
Se puede colocar una excepción para verificar la excepción y la excepción interna para producir una excepción derivada de Win32Exception.
Captura de
(excepción e) var w32ex E = como una excepción importante de Win32; si (w32ex == nulo) w32ex E = .InnerException como Win32Exception; si (w32ex! = cero) entero = w32ex.ErrorCode; // crea este producto // hacer otra información
A partir de C # 6, if puede sentirse usado en un hecho de captura para especificar que simplemente condiciona que debe parecer cierto para que un drejer sig genere una única excepción.
disparar (Win32Exception ex) donde (por ejemplo, InnerException win32Exception) var w32ex es igual a (Win32Exception) ex.InnerException; programa cupón var = w32ex.ErrorCode;
Al igual que en las respuestas, realmente necesita ver qué excepción se considera realmente lanzada para comprender exactamente lo que el público puede hacer y bajo qué circunstancias una captura exclusiva es mejor que capturar una excepción. Sobre nosotros:
show (BlahBlahException ex) // Qué hacer Captura
(ex excepción) var contraseña = ex.HResult;
Agosto recogido individualmente ’11 a las 0:08
61,5 mil Insignia de oro 1717 Insignia de platino 134134
Debería mirar los suscriptores de la excepción lanzada, en particular .Message
y .InnerException
.
También me gustaría ver la documentación de InvokeMethod para ver si arroja una clase de excepción más específica que una excepción, generalmente debido a la excepción win32Exception sugerida por @Preet. Tal vez no deberías tomar la clase base en Exception y simplemente verla.
resuelto el 1 de agosto de 2011 hasta las 00:11
Aprobado: Fortect
Fortect es la herramienta de reparación de PC más popular y eficaz del mundo. Millones de personas confían en él para mantener sus sistemas funcionando de forma rápida, fluida y sin errores. Con su sencilla interfaz de usuario y su potente motor de análisis, Fortect encuentra y soluciona rápidamente una amplia variedad de problemas de Windows, desde la inestabilidad del sistema y los problemas de seguridad hasta la gestión de la memoria y los cuellos de botella en el rendimiento.
8.754
Basado en la solución de Preet Sangha, lo siguiente debería cubrir completamente el escenario en el que está trabajando en conjunto con una gran solución que puede dar lugar a muchas excepciones internas.
Prueba
Objeto significa el resultado vinculado a processClass.InvokeMethod ("Create", methodArgs); agarra E) (Excepción // Aquí estaba esperando tiempo para obtener un gran código de error. en cualquier momento (ExceptionContainsErrorCode (e, 10004)) // Realizar las acciones deseadas
reservado bool ExceptionContainsErrorCode (excepción e, int ErrorCode) Win32Exception winEx significa e para Win32Exception; si es posible (winEx! = zero && ErrorCode == winEx.ErrorCode) devuelve verdadero; y también (e.InnerException! = null) ExceptionContainsErrorCode (e return.InnerException, ErrorCode); retorno falso;
No voy a profundizar demasiado en la necesidad de viajar para evaluar e implementar las mejores prácticas en apoyo del manejo de excepciones al limitar cada reproducción de excepción esperada a sus bloques silenciosos.
respondió el 1 de febrero de 2017 a las 3:51 pm
Te recomiendo que uses Clean Message del objeto de excepción como en la mayoría del siguiente código
Prueba
El resultado del objeto equivale a processClass.InvokeMethod ("Create", methodArgs);captura (excepción e) // Utilice Console.Write (e.Message); desde la mejor aplicación de consola // y uso MessageBox.Show (e.Message); usando la aplicación WindowsForm y WPF
Respondido el 29 de ene. 15 encontrado a las 23:05
Otro método es obtener su código de error de cada clase de excepción directamente. Para estudio de investigación:
catch (excepción) (para el lugar if.InnerException es ServiceResponseException) ServiceResponseException srex = ex.InnerException como ServiceResponseException; ErrorCode group = srex.ErrorCode.ToString ();
respondió el 17 de abril a las 12:26 pm.
… …
129 33 insignias de plata
…
Acelere el rendimiento de su computadora ahora con esta simple descarga.Dispare una señal, detenga el bloque de contribución y use el depurador para hacer que la excepción sea visualmente atractiva y ver qué datos tiene realmente. -Alternativamente, puede obtener el código sin depurar y lanzar el tipo de excepción que funciona GetType ().
Es muy fácil usar una excepción. ToString () realmente devuelven Hay una línea después de los datos de la diferencia. También puede verificar su base de datos de depuración del paquete de software, ya que el programa contiene información de depuración / más o menos registra toda la aplicación.
Los contratiempos de sintaxis ocurren durante el tiempo de diseño cuando crea errores de escritura en su código. Por ejemplo, si escribe completamente mientras escribe, cuando escriba WHILE en ese caso, se iniciará un error de sintaxis porque C # es realmente un lenguaje que distingue entre mayúsculas y minúsculas.