Springen naar inhoud

[c#] throw exception


  • Log in om te kunnen reageren

#1

phenomen

    phenomen


  • >100 berichten
  • 220 berichten
  • Ervaren gebruiker

Geplaatst op 07 december 2011 - 19:20

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?

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

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

Veranderd door Xenion, 25 december 2011 - 20:57
code tags toegevoegd


Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Bart

    Bart


  • >5k berichten
  • 7224 berichten
  • VIP

Geplaatst op 07 december 2011 - 19:27

Je gebruikt de klasse Wafel helemaal niet in je programma.
If I have seen further it is by standing on the shoulders of giants.-- Isaac Newton

#3

phenomen

    phenomen


  • >100 berichten
  • 220 berichten
  • Ervaren gebruiker

Geplaatst op 07 december 2011 - 19:30

Wafel wafel = new Wafel(prijs, gewicht) staat er ook tussen.

#4

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 07 december 2011 - 21:18

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.

#5

phenomen

    phenomen


  • >100 berichten
  • 220 berichten
  • Ervaren gebruiker

Geplaatst op 08 december 2011 - 18:47

kan je me even aantonen in de code? want ik zie niet direct wat je wil zeggen met "setter van die prijs"
bedankt

#6

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 08 december 2011 - 21:36

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.)





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures