try todas tipos que propiedades new las existen excepciones example errores como catch capturar c# .net exception exception-handling line-numbers

tipos - todas las excepciones en c#



Mostrar número de línea en el manejo de excepciones (4)

¿Cómo se mostraría qué número de línea causó el error y esto es posible con la forma en que .NET compila sus .exes?

Si no, ¿existe una forma automatizada para que Exception.Message muestre el sub que se eliminó?

try { int x = textbox1.Text; } catch(Exception ex) { MessageBox.Show(ex.Message); }


Si usa ''StackTrace'' e incluye los archivos .pdb en el directorio de trabajo, el seguimiento de la pila debe contener números de línea.


Para ver el stacktrace para una excepción dada, use e.StackTrace

Si necesita información más detallada, puede usar la clase System.Diagnostics.StackTrace (aquí hay algunos códigos para que pruebe):

try { throw new Exception(); } catch (Exception ex) { //Get a StackTrace object for the exception StackTrace st = new StackTrace(ex, true); //Get the first stack frame StackFrame frame = st.GetFrame(0); //Get the file name string fileName = frame.GetFileName(); //Get the method name string methodName = frame.GetMethod().Name; //Get the line number from the stack frame int line = frame.GetFileLineNumber(); //Get the column number int col = frame.GetFileColumnNumber(); }

Esto solo funcionará si hay un archivo pdb disponible para el ensamblaje. Vea las propiedades del proyecto - pestaña de compilación - Avanzado - Selección de información de depuración para asegurarse de que hay un archivo pdb.


string lineNumber=e.StackTrace.Substring(e.StackTrace.Length - 7, 7);


Use ex.ToString() para obtener el seguimiento completo de la pila.

Debe compilar con símbolos de depuración (archivos .pdb), incluso en modo de lanzamiento, para obtener los números de línea (esta es una opción en las propiedades de compilación del proyecto).