Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/brendon3578/c-sharp-account-withdrawal-system
https://github.com/brendon3578/c-sharp-account-withdrawal-system
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/brendon3578/c-sharp-account-withdrawal-system
- Owner: Brendon3578
- License: mit
- Created: 2024-08-19T20:13:47.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-08-21T23:32:30.000Z (4 months ago)
- Last Synced: 2024-08-22T01:13:41.871Z (4 months ago)
- Language: C#
- Size: 7.81 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Account Withdrawal System
Este projeto em C# .NET foi desenvolvido para explorar o tratamento de exceções, utilizando blocos `try-catch-finally` em operações de saque em uma conta bancária. O sistema simula um cenário de retiradas de valores de uma conta, verificando limites e saldo disponível, e lançando exceções personalizadas quando ocorrem erros.
## 💻 Descrição
O sistema permite ao usuário criar uma conta bancária e realizar múltiplos saques, verificando se o valor do saque excede o limite permitido ou se há saldo suficiente. Quando um erro ocorre durante a tentativa de saque, o sistema lança exceções personalizadas e trata essas exceções de forma adequada, exibindo mensagens de erro ao usuário e mantendo o sistema estável.
## 🔮 Funcionalidades
- **Criação de Conta**: O sistema permite criar uma conta bancária com número, titular, saldo inicial e limite de saque.
- **Saque com Tratamento de Exceções**: O sistema verifica se o valor do saque é maior que o limite permitido ou maior que o saldo disponível e lança exceções específicas em cada caso.
- **Tratamento de Erros**: O sistema captura exceções personalizadas (`NotEnoughBalanceException` e `WithdrawException`) e exibe mensagens de erro informativas.
- **Bloco `finally`**: Após cada tentativa de saque, o sistema exibe o saldo atual, independentemente de ter ocorrido uma exceção.## Pilares de POO Utilizados
Este projeto demonstra o uso dos seguintes pilares da Programação Orientada a Objetos:
1. **Herança**: As exceções personalizadas `NotEnoughBalanceException` e `WithdrawException` herdam da classe base `ApplicationException`, especializando o comportamento de exceções para o domínio da aplicação.
1. **Polimorfismo**: O uso de polimorfismo é evidenciado no tratamento de exceções, onde diferentes tipos de exceções são capturadas e tratadas de forma adequada.## 📁 Estrutura do Código
- **Classe `Account`**: Representa uma conta bancária com número, titular, saldo e limite de saque. Contém métodos para depósito e saque, onde o saque pode lançar exceções se houver problemas.
- **Classe `WithdrawException`**: Exceção personalizada que é lançada quando ocorre um erro genérico relacionado a saques, como exceder o limite permitido.
- **Classe `NotEnoughBalanceException`**: Subclasse de `WithdrawException`, lançada quando o saldo da conta é insuficiente para o saque solicitado.## 🎈 Exemplo de Uso
O usuário pode criar uma conta bancária e tentar realizar múltiplos saques. Se o valor do saque exceder o limite permitido ou o saldo disponível, uma exceção será lançada, tratada e uma mensagem de erro será exibida. O sistema garante que, mesmo em caso de erro, o saldo da conta seja exibido corretamente após cada tentativa de saque.
## ✨ Exemplo de Uso
- **C#**
- **.NET 8.0**---
Feito com ☕ por Brendon Gomes