<?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[[erledigt] Fehler ausgabe total umständlich?]]></title><description><![CDATA[<p>Ich möchte einfach nur einen range_error erzeugen und in dem Parameter vom Fehlermeldungs-Konstructor beschreiben:<br />
- welche Variable<br />
- mit welchen Wert<br />
- welchen Bereich verlassen hat.</p>
<p>In meinen Fall habe ich ein 2 demensionales Array welches ich mit einem std:vector simuliere. Nun habe ich eine Methode geschrieben die aus einer zweidemensionallen Positionsangabe die Position des Elementes in den eindemensionallen Array berechnet.<br />
Falls der Wert von x der nicht zwischen 0 und width-1 liegt moehte ich einen Fehler genieren. Die soll zum Beispiel so aussehen:</p>
<blockquote>
<p>x has the value 45, but it sould have a value between 0..42</p>
</blockquote>
<p>Ich darf das ja nicht so schreiben wie in java oder?</p>
<pre><code class="language-java">throw new Fehlerklasse(&quot;x has value&quot; + x + &quot;, but it should have a value between 0..&quot; + (width-1));
</code></pre>
<p>oder gibt es eine Lösung die dieser in Pascal/Delphi realisieren ähnelt?</p>
<blockquote>
<p>raise Exception.create('x has value' + IntToStr(x) + ', but it should have a value between 0,,' + IntToStr(width-1));</p>
</blockquote>
<p>In beiden Sprachen kann ich mit einem Befehl den String generieren und das Ergebnis gleich dem Fehlemeldungs Konstructor überreichen. Geht das bei C++ auch, oder muss ich da auf eigene hilfs Funktionen zurueckgreifen?</p>
<p>Habe nur diesen Eintrag im FAQ gefunden der erklaert wie man aus einem Integer einen String macht.</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39488.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39488.html</a></p>
<p>MfG<br />
IFlo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/140164/erledigt-fehler-ausgabe-total-umständlich</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 22:16:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/140164.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 12 Mar 2006 17:26:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [erledigt] Fehler ausgabe total umständlich? on Mon, 13 Mar 2006 11:57:01 GMT]]></title><description><![CDATA[<p>Ich möchte einfach nur einen range_error erzeugen und in dem Parameter vom Fehlermeldungs-Konstructor beschreiben:<br />
- welche Variable<br />
- mit welchen Wert<br />
- welchen Bereich verlassen hat.</p>
<p>In meinen Fall habe ich ein 2 demensionales Array welches ich mit einem std:vector simuliere. Nun habe ich eine Methode geschrieben die aus einer zweidemensionallen Positionsangabe die Position des Elementes in den eindemensionallen Array berechnet.<br />
Falls der Wert von x der nicht zwischen 0 und width-1 liegt moehte ich einen Fehler genieren. Die soll zum Beispiel so aussehen:</p>
<blockquote>
<p>x has the value 45, but it sould have a value between 0..42</p>
</blockquote>
<p>Ich darf das ja nicht so schreiben wie in java oder?</p>
<pre><code class="language-java">throw new Fehlerklasse(&quot;x has value&quot; + x + &quot;, but it should have a value between 0..&quot; + (width-1));
</code></pre>
<p>oder gibt es eine Lösung die dieser in Pascal/Delphi realisieren ähnelt?</p>
<blockquote>
<p>raise Exception.create('x has value' + IntToStr(x) + ', but it should have a value between 0,,' + IntToStr(width-1));</p>
</blockquote>
<p>In beiden Sprachen kann ich mit einem Befehl den String generieren und das Ergebnis gleich dem Fehlemeldungs Konstructor überreichen. Geht das bei C++ auch, oder muss ich da auf eigene hilfs Funktionen zurueckgreifen?</p>
<p>Habe nur diesen Eintrag im FAQ gefunden der erklaert wie man aus einem Integer einen String macht.</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39488.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39488.html</a></p>
<p>MfG<br />
IFlo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1014743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1014743</guid><dc:creator><![CDATA[if*Flo*]]></dc:creator><pubDate>Mon, 13 Mar 2006 11:57:01 GMT</pubDate></item><item><title><![CDATA[Reply to [erledigt] Fehler ausgabe total umständlich? on Sun, 12 Mar 2006 17:34:05 GMT]]></title><description><![CDATA[<p>nutze den std::ostringstream:</p>
<pre><code class="language-cpp">#include &lt;sstream&gt;
// ...
if( Fehler )
{
    std::ostringstream buf;
    buf &lt;&lt; &quot;x has value&quot; &lt;&lt; x &lt;&lt; &quot;, but it should have a value between 0..&quot; &lt;&lt; (width-1);
    throw std::range_error( buf.str() );
}
</code></pre>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1014746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1014746</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Sun, 12 Mar 2006 17:34:05 GMT</pubDate></item><item><title><![CDATA[Reply to [erledigt] Fehler ausgabe total umständlich? on Sun, 12 Mar 2006 17:49:24 GMT]]></title><description><![CDATA[<p>Werner Salomon schrieb:</p>
<blockquote>
<p>nutze den std::ostringstream:</p>
<pre><code class="language-cpp">#include &lt;sstream&gt;
// ...
if( Fehler )
{
    std::ostringstream buf;
    buf &lt;&lt; &quot;x has value&quot; &lt;&lt; x &lt;&lt; &quot;, but it should have a value between 0..&quot; &lt;&lt; (width-1);
    throw std::range_error( buf.str() );
}
</code></pre>
<p>Gruß<br />
Werner</p>
</blockquote>
<p>Also nein, es geht nicht mit einen Befehl?</p>
<p>Hmm danke, dann muss ich es wohl so umstaendlich machen?</p>
<p>MfG<br />
IFlo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1014761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1014761</guid><dc:creator><![CDATA[if*Flo*]]></dc:creator><pubDate>Sun, 12 Mar 2006 17:49:24 GMT</pubDate></item><item><title><![CDATA[Reply to [erledigt] Fehler ausgabe total umständlich? on Sun, 12 Mar 2006 21:27:37 GMT]]></title><description><![CDATA[<p>Auch wenn ich nicht sehe dass std::ostringstream allzu umständlich ist könntest du dich evtl. für boost interessieren:<br />
<a href="http://www.boost.org/libs/format/index.html" rel="nofollow">boost::format</a><br />
<a href="http://www.boost.org/libs/conversion/lexical_cast.htm" rel="nofollow">boost::lexical_cast</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1014889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1014889</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Sun, 12 Mar 2006 21:27:37 GMT</pubDate></item><item><title><![CDATA[Reply to [erledigt] Fehler ausgabe total umständlich? on Mon, 13 Mar 2006 11:31:26 GMT]]></title><description><![CDATA[<p>danke finix, das war es was ich ursprünglich gesucht hatte!</p>
<p>Habe mir jetzt aber zur Bereichs überprüfung folgendes (und erstes <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="🙂"
    /> )Template erstellt:</p>
<pre><code class="language-cpp">template &lt;typename T&gt;
void assertNotOutsideRange(const std::string name, const T value, const T from, const T to)
{
	if (value &gt; to || value &lt; from)
	{
		std::ostringstream buf;
		buf &lt;&lt; name &lt;&lt; &quot;: expected value between &quot; &lt;&lt; from &lt;&lt; &quot; and &quot; &lt;&lt; to &lt;&lt; &quot;, but get &quot; &lt;&lt; value;
		throw std::range_error( buf.str() );
	}
}
</code></pre>
<p>und rufe(??) es dann so auf:</p>
<pre><code class="language-cpp">assertNotOutsideRange(&quot;x&quot;,x,0,width-1);
	assertNotOutsideRange(&quot;y&quot;,y,0,height-1);
</code></pre>
<p>Ob es nun richtig/gut war, da einen std:string als Parameter zu verwenden anstatt einem Char*, bin ich mir nicht ganz sicher. Damit das hier nicht Off-Topic wird fange, ich für diese Frage einen neuen Thread an. <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-140225-and-start-is-0-and-postdays-is-0-and-postorder-is-asc-and-highlight-is-.html" rel="nofollow">(Link)</a></p>
<p>Danke nochmal an alle!</p>
<p>MfG<br />
IFlo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1015162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1015162</guid><dc:creator><![CDATA[if*Flo*]]></dc:creator><pubDate>Mon, 13 Mar 2006 11:31:26 GMT</pubDate></item><item><title><![CDATA[Reply to [erledigt] Fehler ausgabe total umständlich? on Mon, 13 Mar 2006 11:33:56 GMT]]></title><description><![CDATA[<p>und jetzt erklär nochmal, warum du hier ein template benutzt... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1015173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1015173</guid><dc:creator><![CDATA[unreg_aber_oho]]></dc:creator><pubDate>Mon, 13 Mar 2006 11:33:56 GMT</pubDate></item><item><title><![CDATA[Reply to [erledigt] Fehler ausgabe total umständlich? on Mon, 13 Mar 2006 11:55:47 GMT]]></title><description><![CDATA[<p>Damit ich sie auch mit int, double, float und evt. eigenen Objekten auch verwenden kann. Und sie nicht 5 mal überladen muss. Spricht den was dagegen?</p>
<p>MfG<br />
IFlo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1015195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1015195</guid><dc:creator><![CDATA[if*Flo*]]></dc:creator><pubDate>Mon, 13 Mar 2006 11:55:47 GMT</pubDate></item></channel></rss>