Solved

How to maintain the list of all the exceptions in a List<> object in C#?

Posted on 2011-09-06
5
197 Views
Last Modified: 2012-05-12
Hi,

I need to maintain a list of all exceptions in a List<> object. In the attached code below, I have a method 'Import' which will invoke another method 'SetField' in a for loop and I need to be able to capture any exceptions and continue with invoking the 'SetField' for the rest of the items. In the calling program, I need to check if there are any errors as below. But I am not able to access the list 'ErrorMessages' on the 'errors' object in the calling program. I am missing something here. Can anybody please provide any suggestions? Thank you.

//Calling program
Fields f = new Fields();
f.Import();
if(errors.ErrorMessages.Count > 0)
{
//loop through each message here.
}
public class Exceptions
    {
        List<string> ErrorMessages = new List<string>();

        public void Add(string field, int instance, string error)
        {
            ErrorMessages.Add(string.Format("Error '{0}' occured while setting the field {1} and instance {2}", error, field, instance));
        }
    }


class Fields
{

public Exceptions errors { get; set; }

public void Import()
{
	
	foreach(var item in fields)
	{
		try
		{
			SetField(item.field, item.instance)
		}
		catch(Exception x)
		{
			errors.Add(item.field, item.instance, x.Message)	
		}
	}
}

}

Open in new window

0
Comment
Question by:ipjyo
  • 3
  • 2
5 Comments
 
LVL 74

Accepted Solution

by:
käµfm³d   👽 earned 500 total points
Comment Utility
Add a property to access the data:

public class Exceptions
{
    private List<string> ErrorMessages = new List<string>();

    public void Add(string field, int instance, string error)
    {
        ErrorMessages.Add(string.Format("Error '{0}' occured while setting the field {1} and instance {2}", error, field, instance));
    }
    
    public List<string> Errors { get { return this.ErrorMessages } }
}

Open in new window


Then you would access it like this:
errors.Errors.Add(item.field, item.instance, x.Message)

Open in new window

0
 
LVL 74

Assisted Solution

by:käµfm³d 👽
käµfm³d   👽 earned 500 total points
Comment Utility
Correction to the "access" example--it doesn't quite fit your code:
foreach (string err in errors.Errors)
{
    Console.WriteLine(err);
}

Open in new window

0
 

Author Comment

by:ipjyo
Comment Utility
Thank you. Also, I am trying to add error messages using the property of type 'Exceptions' as below.

public Exceptions errors { get; set; }

errors.Add(item.field, item.instance, x.Message)      

Also, I will need to access this property to look for the errors in a different assembly as below. But I am not able to access the property 'Errors' of type <List>. The intellisense is showing only the property 'errors' but not the poperty defined in 'Exceptions'.

//Calling assembly
Fields f = new Fields();
f.Import();
if(errors.Errors.Count > 0)
{
//loop through each message here.
}

class Fields
{

public Exceptions errors { get; set; }

public void Import()
{
	
	foreach(var item in fields)
	{
		try
		{
			SetField(item.field, item.instance)
		}
		catch(Exception x)
		{
			errors.Add(item.field, item.instance, x.Message)	
		}
	}
}

}

Open in new window

0
 

Author Comment

by:ipjyo
Comment Utility
I am sorry. my bad. I am able to access the property 'Errors' from a different assembly. Please ignore my previous comment.

Thanks for your help.
0
 
LVL 74

Expert Comment

by:käµfm³d 👽
Comment Utility
NP. Glad to help  = )
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

We all know that functional code is the leg that any good program stands on when it comes right down to it, however, if your program lacks a good user interface your product may not have the appeal needed to keep your customers happy. This issue can…
This article is for Object-Oriented Programming (OOP) beginners. An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Inter…
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now