Csharp/C Sharp/Language Basics/Exception Stack
Версия от 15:31, 26 мая 2010; (обсуждение)
Printing the stack trace from the Environment when an exception is not thrown
/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa
Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
// EnvTrace.cs -- demonstrates printing the stack trace from the Environment
// when an exception is not thrown.
//
// Compile this program with the following command line:
// C:>csc /debug:full EnvTrace.cs
using System;
using System.Diagnostics;
namespace nsExceptions
{
public class EnvTrace
{
static public void Main ()
{
clsTest test = new clsTest();
test.TestStackTrace ();
Console.WriteLine ("\r\nProgram completed normally");
}
}
public class clsTest
{
public void TestStackTrace ()
{
try
{
CauseTrouble(1.7);
}
catch (Exception e)
{
Console.WriteLine (e.StackTrace);
}
}
void CauseTrouble (double val)
{
clsAnother nudder = new clsAnother ();
nudder.MakeProblem ((int) val);
}
}
class clsAnother
{
public void MakeProblem (int x)
{
Console.WriteLine (Environment.StackTrace);
}
}
}
Print the stack trace when an exception is thrown
/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa
Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
// StakTrce.cs -- demonstrates printing the stack trace when an
// exception is thrown.
//
// Compile this program with the following command line:
// C:>csc /debug:full StakTrce.cs
using System;
namespace nsExceptions
{
public class StakTrce
{
static public void Main ()
{
clsTest test = new clsTest();
test.TestStackTrace ();
}
}
public class clsTest
{
public void TestStackTrace ()
{
try
{
CauseTrouble(1.7);
}
catch (Exception e)
{
Console.WriteLine (e.StackTrace);
}
}
void CauseTrouble (double val)
{
clsAnother nudder = new clsAnother ();
nudder.MakeProblem ((int) val);
}
}
class clsAnother
{
public void MakeProblem (int x)
{
throw (new Exception());
}
}
}