Improve company productivity with a Business Account.Sign Up

x
?
Solved

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

Posted on 2011-09-06
5
Medium Priority
?
217 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 75

Accepted Solution

by:
käµfm³d   👽 earned 2000 total points
ID: 36493027
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 75

Assisted Solution

by:käµfm³d 👽
käµfm³d   👽 earned 2000 total points
ID: 36493031
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
ID: 36495884
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
ID: 36495912
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 75

Expert Comment

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

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
Hello there! As a developer I have modified and refactored the unit tests which was written by fellow developers in the past. On the course, I have gone through various misconceptions and technical challenges when it comes to implementation. I would…
Through the video, you can check the migration process of Outlook PST file to PDF. Kernel for Outlook to PDF tool can convert Outlook emails with all attributes like Subject, To, From, Cc, Bcc and other folders such as Inbox, Outbox, Sent Items, Jun…
Watch the software video of Kernel Import PST to Office 365 tools which can easily import PST and OST files to Office 365 for bulk mailboxes. The process of migration is simple and user can map source and destination mailboxes and easily import data…

602 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