You are on page 1of 4

File AccessDeniedException.

cs:

using System;

namespace Lab3
{
internal class AccessDeniedException : ApplicationException
{
public AccessDeniedException() : base() { }

public AccessDeniedException(string message) : base(message) { }


}
}

phiên bản mới của class BankAccount:

using System;

namespace Lab3
{
internal class BankAccount
{
private double balance;
private bool isPasswordVerified;

public BankAccount(double initialBalance)


{
balance = initialBalance;
isPasswordVerified = false; // Assume password verification is
required initially
}

// Property Balance with access permission check


public double Balance
{
get
{
CheckAccessPermission();
return balance;
}
set
{
CheckAccessPermission();
balance = value;
}
}
// Method to check access permission and throw AccessDeniedException
if needed
private void CheckAccessPermission()
{
if (!isPasswordVerified)
{
throw new AccessDeniedException("Access denied: Password
verification required.");
}
}

// Method to verify password


public void VerifyPassword(string password)
{
// Simulate password verification process
if (password == "correctpassword")
{
isPasswordVerified = true;
}
else
{
isPasswordVerified = false;
}
}
}
}

Hàm main:

using System;

namespace Lab3
{
internal class Program
{
static void Main(string[] args)
{
try
{
BankAccount alexAccount = null;
GetUserBankAccountInformation(out alexAccount);
Console.WriteLine("Please type in your password");
string password = Console.ReadLine();
alexAccount.VerifyPassword(password);
Console.WriteLine(alexAccount.CalculateInterestMoney());
Console.ReadLine();
}
catch (AccessDeniedException)
{
Console.WriteLine("Access denied!");
}
catch (OverflowException ex)
{
Console.WriteLine(ex.StackTrace);
}
catch (UserAccountException ex)
{
Console.WriteLine(ex.Message);
}
}

static void GetUserBankAccountInformation(out BankAccount account)


{
string userName;
uint userAge;
uint userID;
double balance;
string password;

Console.Write("Enter UserName: ");


userName = Console.ReadLine();

Console.Write("Enter UserAge: ");


while (!uint.TryParse(Console.ReadLine(), out userAge))
{
Console.WriteLine("Invalid input. Please enter a valid age.");
Console.Write("Enter UserAge: ");
}

Console.Write("Enter UserID: ");


while (!uint.TryParse(Console.ReadLine(), out userID))
{
Console.WriteLine("Invalid input. Please enter a valid ID.");
Console.Write("Enter UserID: ");
}

Console.Write("Enter Balance: ");


while (!double.TryParse(Console.ReadLine(), out balance))
{
Console.WriteLine("Invalid input. Please enter a valid
balance.");
Console.Write("Enter Balance: ");
}

Console.Write("Enter password: ");


password = Console.ReadLine();

account = new BankAccount(balance);

account.VerifyPassword(password);
}
}
}

You might also like