<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Handhabe einer Fehlerprüfung]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe eine Frage zur Überprüfung von übergebenen String-Werten.</p>
<p>Und zwar habe ich mit boost::regex eine Prüfung in den Konstruktor meines Objekts gebaut. Wird der Konstruktor der einen String erwartet aufgerufen und stimmt der String mit einer gewissen Form nicht überein wird eine Exception geworfen.</p>
<p>Schön. Was aber wenn in vielen anderen Objekten die selben Prüfungen notwendig sind? Immer und immer wieder den Code wiederholen? Oder soll ich viele fast banale Prüfungen in eigene Objekte ausgliedern und mittels Vererbung meinen eigentlichen Objekten zugänglich machen? Oder eine große Fehlerklasse? Dann aber wären Objekt und Prüfung getrennt.</p>
<p>Was tun?</p>
<p>Besten Dank und verzeiht das ich keine Bsp. gebracht habe. Ist schon spät...</p>
<p>Gruß</p>
<p>Goran</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/190359/handhabe-einer-fehlerprüfung</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 14:59:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/190359.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 21 Aug 2007 23:32:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Handhabe einer Fehlerprüfung on Tue, 21 Aug 2007 23:32:22 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe eine Frage zur Überprüfung von übergebenen String-Werten.</p>
<p>Und zwar habe ich mit boost::regex eine Prüfung in den Konstruktor meines Objekts gebaut. Wird der Konstruktor der einen String erwartet aufgerufen und stimmt der String mit einer gewissen Form nicht überein wird eine Exception geworfen.</p>
<p>Schön. Was aber wenn in vielen anderen Objekten die selben Prüfungen notwendig sind? Immer und immer wieder den Code wiederholen? Oder soll ich viele fast banale Prüfungen in eigene Objekte ausgliedern und mittels Vererbung meinen eigentlichen Objekten zugänglich machen? Oder eine große Fehlerklasse? Dann aber wären Objekt und Prüfung getrennt.</p>
<p>Was tun?</p>
<p>Besten Dank und verzeiht das ich keine Bsp. gebracht habe. Ist schon spät...</p>
<p>Gruß</p>
<p>Goran</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1349417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349417</guid><dc:creator><![CDATA[goran]]></dc:creator><pubDate>Tue, 21 Aug 2007 23:32:22 GMT</pubDate></item><item><title><![CDATA[Reply to Handhabe einer Fehlerprüfung on Wed, 22 Aug 2007 04:39:08 GMT]]></title><description><![CDATA[<p>goran schrieb:</p>
<blockquote>
<p>Oder soll ich viele fast banale Prüfungen in eigene Objekte ausgliedern</p>
</blockquote>
<p>Ja.</p>
<p>goran schrieb:</p>
<blockquote>
<p>und mittels Vererbung meinen eigentlichen Objekten zugänglich machen?</p>
</blockquote>
<p>Nein.</p>
<p>Schreib eine freie Funktion, die diese Prüfung durchführt, oder meinetwegen eine Klasse, die die Prüfung in ihrem Konstruktor macht. Aber bitte, bitte keine Vererbung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1349442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349442</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Wed, 22 Aug 2007 04:39:08 GMT</pubDate></item><item><title><![CDATA[Reply to Handhabe einer Fehlerprüfung on Wed, 22 Aug 2007 05:56:37 GMT]]></title><description><![CDATA[<p>wenn die objekte nichts gemein haben, außer dieser validierung, dann brächte vererbung eine beziehung zustande, die nicht gewollt ist.</p>
<p>was sinn machen könnte ist, objekte dieser art von einer factory generieren zu lassen, deren create methode einen string und einen validator erwartet. diese validatoren können wunderbar in einer vererbungshierarchie aufgestellt werden und die factory polymorphie nutzen, um die strings zu überprüfen. das hat den vorteil, dass auch wirklich nur dann objekte generiert werden, wenn die valdierung erfolgreich war. eine objekterzeugung im konstruktor abzubrechen ist immer ein wenig halbgar meiner meinung nach.</p>
<pre><code class="language-cpp">class Validator
{
  public:
  virtual bool validate(std::string) = 0;
};

class A
{
  private:
  A();
};

class Factory
{
  public:
  static A createA(std::string, *Validator);
  static B createB(std::string, *Validator);
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1349471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349471</guid><dc:creator><![CDATA[bla123]]></dc:creator><pubDate>Wed, 22 Aug 2007 05:56:37 GMT</pubDate></item><item><title><![CDATA[Reply to Handhabe einer Fehlerprüfung on Wed, 22 Aug 2007 13:27:39 GMT]]></title><description><![CDATA[<p>Das Bsp. gefällt mir <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /> Aber eine Frage habe ich noch....</p>
<p>Und zwar kann ich mit</p>
<pre><code class="language-cpp">static A createA(std::string, *Validator);
</code></pre>
<p>ein Objekt A zurückgeben wenn ich das richtig sehe. Also etwas wie</p>
<pre><code class="language-cpp">A myA;
    string myString = &quot;Bla&quot;;
    Validator * myValidator = new(&quot;someRegex&quot;);

    myA = createA(myString, myValidator);
</code></pre>
<p>Dann verstehe ich aber nicht</p>
<blockquote>
<p>das hat den vorteil, dass auch wirklich nur dann objekte generiert werden, wenn die valdierung erfolgreich war.</p>
</blockquote>
<p>Aber &quot;myA&quot; ist doch schon deklariert worden. Oder kapier ich nicht &quot;static functions&quot;. Die Verhalten sich doch genauso mit der Ausnahme das sie erreichbar sind ohne ein Objekt der entsprechenden Klasse zu instanziieren. Also</p>
<pre><code class="language-cpp">Factory::createA(aString, aValidator);
</code></pre>
<p>Was habe ich übersehen?</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1349803</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349803</guid><dc:creator><![CDATA[goran]]></dc:creator><pubDate>Wed, 22 Aug 2007 13:27:39 GMT</pubDate></item></channel></rss>