小编gua*_*azz的帖子

使用Assert时C#抛出异常?

我有一个系统,其中employeeId必须总是存在,除非存在一些潜在的问题.

我看到的方式是,我有两个选择来检查这段代码:

1:

public void GetEmployee(Employee employee)  
{  
   bool exists = EmployeeRepository.VerifyIdExists(Employee.Id);  
   if (!exists)   
   {   
     throw new Exception("Id does not exist");  
   }  
}    
Run Code Online (Sandbox Code Playgroud)

或2:

public void GetEmployee(Employee employee)  
{  
  EmployeeRepository.AssertIfNotFound(Employee.Id);  
}  
Run Code Online (Sandbox Code Playgroud)

选项#2在C#语言中是否可以接受?

我喜欢它,因为它很整洁,因为我不喜欢在类范围内查看"抛出新异常("bla bla bla")类型的消息.

c# exception-handling

6
推荐指数
2
解决办法
3058
查看次数

C#设计问题

如何处理私有方法的单元测试?

我有一个类将Employee数据加载到数据库中.这是一个示例:

>

public class EmployeeFacade   
{
    public Employees EmployeeRepository = new Employees();  
    public TaxDatas TaxRepository = new TaxDatas();  
    public Accounts AccountRepository = new Accounts();  
    //and so on for about 20 more repositories etc.  

    public bool LoadAllEmployeeData(Employee employee)  
    {   
        if (employee == null)
            throw new Exception("...");


        bool exists = EmployeeRepository.FetchExisting(emps.Id);
        if (!exists)
        {   
            EmployeeRepository.AddNew(); 
        }

        try
        {
            EmployeeRepository.Id = employee.Id;
            EmployeeRepository.Name = employee.EmployeeDetails.PersonalDetails.Active.Names.FirstName;
            EmployeeRepository.SomeOtherAttribute;
        }
        catch() {}

        try
        {
            emps.Save();
        }
        catch(){}   


        try
        {
            LoadorUpdateTaxData(employee.TaxData);
        }
        catch() {}

        try
        { …
Run Code Online (Sandbox Code Playgroud)

c#

6
推荐指数
1
解决办法
475
查看次数

标签 统计

c# ×2

exception-handling ×1