其实就是从SDK上看到的例子,觉得这个例子很好,就拿出来了,代码如下:

学习堆栈调用和异常的一个很好的例子using System;
学习堆栈调用和异常的一个很好的例子
using System.Diagnostics;
学习堆栈调用和异常的一个很好的例子
学习堆栈调用和异常的一个很好的例子
namespace SFCS
{
学习堆栈调用和异常的一个很好的例子    
// This console application shows various ways to use and
学习堆栈调用和异常的一个很好的例子    
// manipulate StackFrames
学习堆栈调用和异常的一个很好的例子
    class ConsoleApp
{
学习堆栈调用和异常的一个很好的例子        [STAThread]
学习堆栈调用和异常的一个很好的例子        
static void Main(string[] args)
{
学习堆栈调用和异常的一个很好的例子            SFCS1.Class1 myClass 
= new SFCS1.Class1();
学习堆栈调用和异常的一个很好的例子
{
学习堆栈调用和异常的一个很好的例子                myClass.MyMethod();
学习堆栈调用和异常的一个很好的例子            }

{
学习堆栈调用和异常的一个很好的例子                
// Display file and line information, if available.
学习堆栈调用和异常的一个很好的例子
                StackTrace st = new StackTrace(new StackFrame(true));
学习堆栈调用和异常的一个很好的例子                Console.WriteLine(
" StackTrace: " + st.ToString());
学习堆栈调用和异常的一个很好的例子                Console.WriteLine(
" Line Number : " +
学习堆栈调用和异常的一个很好的例子                    st.GetFrame(
0).GetFileLineNumber().ToString());
学习堆栈调用和异常的一个很好的例子                Console.WriteLine(
"-------------------------------------------------\n");
学习堆栈调用和异常的一个很好的例子            }

学习堆栈调用和异常的一个很好的例子        }

学习堆栈调用和异常的一个很好的例子    }

学习堆栈调用和异常的一个很好的例子}

学习堆栈调用和异常的一个很好的例子
namespace SFCS1
{
学习堆栈调用和异常的一个很好的例子    
public class Class1
{
学习堆栈调用和异常的一个很好的例子        
public void MyMethod()
{
学习堆栈调用和异常的一个很好的例子            
try
{
学习堆栈调用和异常的一个很好的例子                SFCS2.Class1 myClass 
= new SFCS2.Class1();
学习堆栈调用和异常的一个很好的例子                myClass.MyMethod();
学习堆栈调用和异常的一个很好的例子            }

学习堆栈调用和异常的一个很好的例子            
catch (Exception e)
{
学习堆栈调用和异常的一个很好的例子                
// There are two frames on the stack, skip the
学习堆栈调用和异常的一个很好的例子                
// current one. By default, file and line information
学习堆栈调用和异常的一个很好的例子                
// are not displayed.
学习堆栈调用和异常的一个很好的例子
                StackTrace st = new StackTrace(new StackFrame(1));
学习堆栈调用和异常的一个很好的例子
学习堆栈调用和异常的一个很好的例子                Console.WriteLine(
" StackTrace: " + st.ToString());
学习堆栈调用和异常的一个很好的例子                
// Is not equivalent to
学习堆栈调用和异常的一个很好的例子
                Console.WriteLine(" StackFrame: " + st.GetFrame(0).ToString());
学习堆栈调用和异常的一个很好的例子
学习堆栈调用和异常的一个很好的例子                Console.WriteLine(
" Line Number : " +
学习堆栈调用和异常的一个很好的例子                    st.GetFrame(
0).GetFileLineNumber().ToString());
学习堆栈调用和异常的一个很好的例子
学习堆栈调用和异常的一个很好的例子                Console.WriteLine(
"-------------------------------------------------\n");
学习堆栈调用和异常的一个很好的例子                
throw e;
学习堆栈调用和异常的一个很好的例子            }

学习堆栈调用和异常的一个很好的例子        }

学习堆栈调用和异常的一个很好的例子    }

学习堆栈调用和异常的一个很好的例子}

学习堆栈调用和异常的一个很好的例子
namespace SFCS2
{
学习堆栈调用和异常的一个很好的例子    
public class Class1
{
学习堆栈调用和异常的一个很好的例子        
public void MyMethod()
{
{
学习堆栈调用和异常的一个很好的例子                SFCS3.Class1 myClass 
= new SFCS3.Class1();
学习堆栈调用和异常的一个很好的例子                myClass.MyMethod();
学习堆栈调用和异常的一个很好的例子
学习堆栈调用和异常的一个很好的例子            }

{
学习堆栈调用和异常的一个很好的例子                
// There are currently three frames on the stack.
学习堆栈调用和异常的一个很好的例子
                StackTrace st1 = new StackTrace(true);
学习堆栈调用和异常的一个很好的例子                Console.WriteLine(
" The Three Frames Are: " + st1.ToString());
学习堆栈调用和异常的一个很好的例子
学习堆栈调用和异常的一个很好的例子                
// You can skip frames during StackFrame construction
学习堆栈调用和异常的一个很好的例子
                StackTrace st2 = new StackTrace(new StackFrame(1true));
学习堆栈调用和异常的一个很好的例子                Console.WriteLine(
" This : " + st2.ToString());
学习堆栈调用和异常的一个很好的例子
学习堆栈调用和异常的一个很好的例子                
// This is similar to skipping frames during StackTrace construction
学习堆栈调用和异常的一个很好的例子
                StackTrace st3 = new StackTrace(1true);
学习堆栈调用和异常的一个很好的例子                Console.WriteLine(
" Is not equivalent to : " + st3.ToString());
学习堆栈调用和异常的一个很好的例子
学习堆栈调用和异常的一个很好的例子                Console.WriteLine(
" Though they both omit the SFCS2.Class1.MyMethod()" +
学习堆栈调用和异常的一个很好的例子                                  
" method call\n");
学习堆栈调用和异常的一个很好的例子
学习堆栈调用和异常的一个很好的例子                Console.WriteLine(
"-------------------------------------------------\n");
学习堆栈调用和异常的一个很好的例子                
throw e;
学习堆栈调用和异常的一个很好的例子            }

学习堆栈调用和异常的一个很好的例子        }

学习堆栈调用和异常的一个很好的例子    }

学习堆栈调用和异常的一个很好的例子}

学习堆栈调用和异常的一个很好的例子
namespace SFCS3
{
学习堆栈调用和异常的一个很好的例子    
public class Class1
{
学习堆栈调用和异常的一个很好的例子        
public void MyMethod()
{
{
学习堆栈调用和异常的一个很好的例子                SFCS4.Class1 myClass 
= new SFCS4.Class1();
学习堆栈调用和异常的一个很好的例子                myClass.MyMethod();
学习堆栈调用和异常的一个很好的例子            }

{
学习堆栈调用和异常的一个很好的例子                StackTrace st 
= new StackTrace(new StackFrame("source.cs"60));
学习堆栈调用和异常的一个很好的例子                Console.WriteLine(
" StackTrace: " + st.ToString());
学习堆栈调用和异常的一个很好的例子                
for(int i =0; i< st.FrameCount; i++ )
{
学习堆栈调用和异常的一个很好的例子                    StackFrame sf 
= st.GetFrame(i);
学习堆栈调用和异常的一个很好的例子                    Console.WriteLine(
" File: {0}", sf.GetFileName());
学习堆栈调用和异常的一个很好的例子                    Console.WriteLine(
" Line Number: {0}", sf.GetFileLineNumber());
学习堆栈调用和异常的一个很好的例子                    
// The column number defaults to zero when not initialized.
学习堆栈调用和异常的一个很好的例子
                    Console.WriteLine(" Column Number: {0}", sf.GetFileColumnNumber());
学习堆栈调用和异常的一个很好的例子                    Console.WriteLine(
" Intermediate Language Offset: {0}", sf.GetILOffset());
学习堆栈调用和异常的一个很好的例子                    Console.WriteLine(
" Native Offset: {0}", sf.GetNativeOffset());
学习堆栈调用和异常的一个很好的例子                }

学习堆栈调用和异常的一个很好的例子                Console.WriteLine(
"-------------------------------------------------\n");
学习堆栈调用和异常的一个很好的例子                
throw e;
学习堆栈调用和异常的一个很好的例子            }

学习堆栈调用和异常的一个很好的例子        }

学习堆栈调用和异常的一个很好的例子    }

学习堆栈调用和异常的一个很好的例子}

学习堆栈调用和异常的一个很好的例子
namespace SFCS4
{
学习堆栈调用和异常的一个很好的例子    
public class Class1
{
学习堆栈调用和异常的一个很好的例子        
public void MyMethod()
{
{
学习堆栈调用和异常的一个很好的例子                SFCS5.Class1 myClass 
= new SFCS5.Class1();
学习堆栈调用和异常的一个很好的例子                myClass.MyMethod();
学习堆栈调用和异常的一个很好的例子            }

{
学习堆栈调用和异常的一个很好的例子                StackTrace st 
= new StackTrace(new StackFrame("source.cs"7924));
学习堆栈调用和异常的一个很好的例子                Console.WriteLine(
"\n StackTrace: " + st.ToString());
学习堆栈调用和异常的一个很好的例子                
// StackTrace.ToString only included the
学习堆栈调用和异常的一个很好的例子                
// MethodBase name. You must access the
学习堆栈调用和异常的一个很好的例子                
// StackFrames explicitly to get filename
学习堆栈调用和异常的一个很好的例子                
// and line number information
学习堆栈调用和异常的一个很好的例子
                for(int i =0; i< st.FrameCount; i++ )
{
学习堆栈调用和异常的一个很好的例子                    StackFrame sf 
= st.GetFrame(i);
学习堆栈调用和异常的一个很好的例子                    Console.WriteLine(
" File: {0}", sf.GetFileName());
学习堆栈调用和异常的一个很好的例子                    Console.WriteLine(
" Line Number: {0}", sf.GetFileLineNumber());
学习堆栈调用和异常的一个很好的例子                    Console.WriteLine(
" Column Number: {0}", sf.GetFileColumnNumber());
学习堆栈调用和异常的一个很好的例子                }

学习堆栈调用和异常的一个很好的例子                Console.WriteLine(
"-------------------------------------------------\n");
学习堆栈调用和异常的一个很好的例子                
throw e;
学习堆栈调用和异常的一个很好的例子            }

学习堆栈调用和异常的一个很好的例子        }

学习堆栈调用和异常的一个很好的例子    }

学习堆栈调用和异常的一个很好的例子}

学习堆栈调用和异常的一个很好的例子
namespace SFCS5
{
学习堆栈调用和异常的一个很好的例子    
public class Class1
{
学习堆栈调用和异常的一个很好的例子        
public void MyMethod()
{
学习堆栈调用和异常的一个很好的例子            
throw new Exception("StackFrame Example");
学习堆栈调用和异常的一个很好的例子        }

学习堆栈调用和异常的一个很好的例子    }

学习堆栈调用和异常的一个很好的例子}

可以使用单步调试的方法一步一步地执行代码,学习StackTrace和StackFrame这两个类的使用,看看方法是如何调用的,在这个过程中也可以学习如何使用throw来抛出异常给调用方法,使得可以进一步处理该异常。

相关文章:

  • 2021-10-24
  • 2021-05-30
  • 2021-07-16
  • 2022-02-24
  • 2021-05-12
  • 2022-12-23
  • 2021-04-04
  • 2021-11-17
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-02
  • 2022-12-23
  • 2021-09-05
  • 2021-11-24
相关资源
相似解决方案