N174 Egne exceptions (2)
Du skal skabe en applikation som
- Først checker om filen c:\temp\tal.txt eksisterer (System.IO.File.Exists). Hvis den ikke findes skal der smides en ApplikationException med teksten “Filen c:\temp\tal.txt findes ikke!”
- I en try/catch-struktur skal du nu
- Åbne filen og hent indhold til en streng (System.IO.File.ReadAllText). Hvis det går galt skal fejlen blot smides videre.
- Konverter indhold til et heltal (int32) ved hjælp af Convert.ToInt32. Hvis det går galt smider ToInt32 en FormatException. I så fald skal du smide en ApplikationException med teksten “Indhold kan ikke konverteres til et heltal”.
- Læg nu 1 til tallet og gem det igen (System.IO.File.WriteAllText). Hvis det går galt skal fejlen blot smides videre.
Så du er altså ude i en try/catch ala:
Klik for at se et forslag til en løsning
using System;
namespace Fejl
{
class Program
{
static void Main(string[] args)
{
string sti = "c:\\temp\\tal.txt";
if (!System.IO.File.Exists(sti))
throw new ApplicationException("Filen c:\\temp\\tal.txt findes ikke!");
string indhold = "";
try
{
indhold = System.IO.File.ReadAllText(sti);
int tal = Convert.ToInt32(indhold);
tal++;
System.IO.File.WriteAllText(sti, tal.ToString());
Console.WriteLine($"Tal i fil er nu {tal}");
}
catch (System.FormatException)
{
throw new ApplicationException($"'{indhold}' kan ikke konverteres til et heltal");
}
catch (Exception)
{
throw;
}
}
}
}