1 van 1

[c#] throw exception

Geplaatst: wo 07 dec 2011, 19:20
door phenomen
Ik heb volgende klasse in C# en de waarde prijs die ik in mijn Program inlees mag niet negatief zijn. INdien negatief dan moet hij via de Try Catch in mijn Program een exception message geven. Ik schets hier even de structuur van mijn programma (niet volledig). Ik merk dat wanneer ik toch een negatieve prijs ingeef deze exception handling niet werkt. Aan wat kan dit liggen en waar moet ik mogenlijk op letten?

Code: Selecteer alles

public class Wafel

{

private double prijs;

private int gewicht;

public double Prijs

{

set

{

if (value > 0)

{

this.prijs = value;

}

else

{

throw new Exception("Prijs < 0");

}

}

get

{

return this.prijs;

}

}
... zelfde voor gewicht

Code: Selecteer alles

class Program

{

static void Main(string[] args)

{

 double prijs = 0;

 int gewicht = 0;

 try

 {

do

{

Console.Write("Prijs: ");

} while (!double.TryParse(Console.ReadLine(), out prijs));

do

{

Console.Write("Gewicht: ");

} while (!int.TryParse(Console.ReadLine(), out gewicht));

 }

 catch (Exception zero)

 {

  Console.WriteLine("Er is een fout gebeurd: " + zero.Message + "\n\n");

  }
Ik zou dus graag indien prijs <0 hebben dat hij via deze methode volgend bericht geeft: "Er is een fout gebeurd: Prijs < 0"

Alvast bedankt voor de hulp

Re: [c#] throw exception

Geplaatst: wo 07 dec 2011, 19:27
door Bart
Je gebruikt de klasse Wafel helemaal niet in je programma.

Re: [c#] throw exception

Geplaatst: wo 07 dec 2011, 19:30
door phenomen
Wafel wafel = new Wafel(prijs, gewicht) staat er ook tussen.

Re: [c#] throw exception

Geplaatst: wo 07 dec 2011, 21:18
door Xenion
Ik vermoed dat je geen try hebt staan rond de setter van die prijs. Enkel daar wordt de exception geworpen, dus enkel met een try rond die functie zal je ze kunnen opvangen.

Re: [c#] throw exception

Geplaatst: do 08 dec 2011, 18:47
door phenomen
kan je me even aantonen in de code? want ik zie niet direct wat je wil zeggen met "setter van die prijs"

bedankt

Re: [c#] throw exception

Geplaatst: do 08 dec 2011, 21:36
door Xenion
Voor zover ik kan zien wordt de exception alleen geworpen in de 'setter' van prijs.

Alleen als je dus "wafel.prijs = -1;" probeert te doen zal je dan volgens mij die exception ontvangen.

Afhankelijk van hoe je constructor ineen zit kan het goed zijn dat wafel(-1,-1) gewoon werkt.

(Ik ben niet bekend met de details van C#, maar dat is wat ik afleid uit de stukken code die je geeft.)