<?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[programm stürzt ab]]></title><description><![CDATA[<p>Hallo,</p>
<p>bei meinen Programm gibt der string eingabe() den Ort an wo sich die Datenbank befindet, z.B. localhost, stimmt der Ort jetzt nicht, z.B. durch einen Schreibfehler, stürzt das Programm nur noch ab ohne die Fehlermeldung zu bringen. Wie kann ich das ändern?</p>
<pre><code>datenbank::datenbank():mysql(NULL), ergebnis_(NULL), reihe_(NULL) {
    // Datenbank initialisieren
    mysql = mysql_init(NULL);
    // Verbindung mit Datenbank herrstellen
    mysql = mysql_real_connect(mysql, eingabe().c_str(), &quot;root&quot;,&quot;******&quot;, &quot;notizen&quot;, 0,NULL, 0);
    fehlerpruefen();
}

void datenbank::fehlerpruefen() {
    if (mysql_errno(mysql) !=0) {
    fltk::message(&quot;Fehler in der Datenbank! Programm wird beendet.&quot;);
    exit(0);
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/119406/programm-stürzt-ab</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 23:17:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/119406.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 31 Aug 2005 17:42:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to programm stürzt ab on Wed, 31 Aug 2005 17:43:09 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>bei meinen Programm gibt der string eingabe() den Ort an wo sich die Datenbank befindet, z.B. localhost, stimmt der Ort jetzt nicht, z.B. durch einen Schreibfehler, stürzt das Programm nur noch ab ohne die Fehlermeldung zu bringen. Wie kann ich das ändern?</p>
<pre><code>datenbank::datenbank():mysql(NULL), ergebnis_(NULL), reihe_(NULL) {
    // Datenbank initialisieren
    mysql = mysql_init(NULL);
    // Verbindung mit Datenbank herrstellen
    mysql = mysql_real_connect(mysql, eingabe().c_str(), &quot;root&quot;,&quot;******&quot;, &quot;notizen&quot;, 0,NULL, 0);
    fehlerpruefen();
}

void datenbank::fehlerpruefen() {
    if (mysql_errno(mysql) !=0) {
    fltk::message(&quot;Fehler in der Datenbank! Programm wird beendet.&quot;);
    exit(0);
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/862256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862256</guid><dc:creator><![CDATA[C++ Neuling]]></dc:creator><pubDate>Wed, 31 Aug 2005 17:43:09 GMT</pubDate></item><item><title><![CDATA[Reply to programm stürzt ab on Wed, 31 Aug 2005 17:49:48 GMT]]></title><description><![CDATA[<p>3 magische worte</p>
<p>throw<br />
try<br />
catch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/862264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862264</guid><dc:creator><![CDATA[golden_jubilee]]></dc:creator><pubDate>Wed, 31 Aug 2005 17:49:48 GMT</pubDate></item><item><title><![CDATA[Reply to programm stürzt ab on Wed, 31 Aug 2005 18:44:01 GMT]]></title><description><![CDATA[<p>wie kann ich das für mein Programm umsetzen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/862300</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862300</guid><dc:creator><![CDATA[C++ Neuling]]></dc:creator><pubDate>Wed, 31 Aug 2005 18:44:01 GMT</pubDate></item><item><title><![CDATA[Reply to programm stürzt ab on Wed, 31 Aug 2005 18:47:11 GMT]]></title><description><![CDATA[<p>Hör nicht auf steff3. Du benutzt ja eine C API. Die kann ja gar keine C++ Exceptions schmeissen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/862301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862301</guid><dc:creator><![CDATA[anti-steff]]></dc:creator><pubDate>Wed, 31 Aug 2005 18:47:11 GMT</pubDate></item><item><title><![CDATA[Reply to programm stürzt ab on Wed, 31 Aug 2005 20:25:18 GMT]]></title><description><![CDATA[<p>Versuch es doch mal so:<br />
Über den Datenbankpointer kannst Du eventuelle Fehler abfangen.</p>
<pre><code class="language-cpp">MYSQL *db;

db = mysql_init(NULL);
  if(!db)
  {
  	printf(&quot;FEHLER! Kann Datenbank nicht initialisieren! \n&quot;);
	return 1;
  }

db = mysql_real_connect(db,HOST,USER,PASS,DB,0,0,0);
  if(!db)
  {
  	printf(&quot;FEHLER! Kann Verbindung mit Datenbank nicht herstellen! \n&quot;);
	return 1;
  }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/862379</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862379</guid><dc:creator><![CDATA[Physikalischer Fehler]]></dc:creator><pubDate>Wed, 31 Aug 2005 20:25:18 GMT</pubDate></item><item><title><![CDATA[Reply to programm stürzt ab on Wed, 31 Aug 2005 21:57:24 GMT]]></title><description><![CDATA[<p>mysql_real_connect liefert einen NULL Pointer im Fehlerfall.</p>
<p>Die Zeile:</p>
<pre><code class="language-cpp">mysql = mysql_real_connect(mysql, eingabe().c_str(), &quot;root&quot;,&quot;******&quot;, &quot;notizen&quot;, 0,NULL, 0);
</code></pre>
<p>löscht den Zeiger des von mysql_init erzeugten Objektes.<br />
mysql_errno bekommt anschliessend den NULL Pointer und mag das vermutlich gar nicht.</p>
<p>Statt mysql mit dem Ergebnis von mysql_real_connect zu überschreiben, einfach nur auf != NULL prüfen (oder in Deinem Fall den Returnwert ignorieren - mysql_errno sollte das dann erledigen) - besser ist aber die direkte Prüfung.</p>
<pre><code class="language-cpp">datenbank::datenbank():mysql(NULL), ergebnis_(NULL), reihe_(NULL) {
    // Datenbank initialisieren
    mysql = mysql_init(NULL);
    // Verbindung mit Datenbank herrstellen
    mysql_real_connect(mysql, eingabe().c_str(), &quot;root&quot;,&quot;******&quot;, &quot;notizen&quot;, 0,NULL, 0);
    fehlerpruefen();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/862415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862415</guid><dc:creator><![CDATA[niemand]]></dc:creator><pubDate>Wed, 31 Aug 2005 21:57:24 GMT</pubDate></item><item><title><![CDATA[Reply to programm stürzt ab on Thu, 01 Sep 2005 05:54:46 GMT]]></title><description><![CDATA[<p>ich würd lieber mit exceptions arbeiten:</p>
<pre><code class="language-cpp">void datenbank::fehlerpruefen() {
    int fehlerNummer=mysql_errno(mysql);
    if (fehlerNummer!=0) {
        throw MySQLException(fehlerNummer,mysql_error(mysql));
    }
}
</code></pre>
<p>MySQLException:</p>
<pre><code class="language-cpp">class MySQLException:public std::exception{
    private:
        int fehlerNummer;
        std::string nachricht;
    public:
        MySQLException(int fehlerNummer,const std::string&amp; nachricht ):fehlerNummer(fehlerNummer),nachricht(nachricht){}
        ~MySQLExcetion()throw(){}
        const char* what()const{//what ist eine methode aus std::exception die überschrieben werden muss
            return nachricht.c_str();
        }
        int fehlerNummer(){
            return fehlerNummer;
        }
};
</code></pre>
<p>und in der main:</p>
<pre><code class="language-cpp">try{
    datenbank db;
}
catch(MySQLException&amp; excep){
    std::cout&lt;&lt;&quot;Error &quot;&lt;&lt;excep.fehlerNummer()&lt;&lt;&quot;:&quot;&lt;&lt;excep.what();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/862470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862470</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Thu, 01 Sep 2005 05:54:46 GMT</pubDate></item><item><title><![CDATA[Reply to programm stürzt ab on Thu, 01 Sep 2005 11:44:32 GMT]]></title><description><![CDATA[<p>Hmm aber wenn er exceptions benutzt, kann er auch gleich die c++ api nehmen oder ? und wenn er das macht gibts ja eh schon BadQuery BadConversation und co. sowie query.success() oder so in der art.. naja und dann würde ich die evtl in mit nem eigenen exception system benutzen bzw auf sie reagieren. oder direkt auf die mysqlpp exceptions reagieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/862678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862678</guid><dc:creator><![CDATA[shapeless]]></dc:creator><pubDate>Thu, 01 Sep 2005 11:44:32 GMT</pubDate></item><item><title><![CDATA[Reply to programm stürzt ab on Thu, 01 Sep 2005 18:15:55 GMT]]></title><description><![CDATA[<blockquote>
<p>Hmm aber wenn er exceptions benutzt, kann er auch gleich die c++ api nehmen oder ?</p>
</blockquote>
<p>Jein. Wenn er das interface wrappen will, ist er mit C deutlich besser dran, da funktionen+strukturen normalerweise einfacher gewrappt werden können als Klassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/863070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/863070</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Thu, 01 Sep 2005 18:15:55 GMT</pubDate></item><item><title><![CDATA[Reply to programm stürzt ab on Thu, 01 Sep 2005 18:49:55 GMT]]></title><description><![CDATA[<p>Hmm, stimmt in diesem Fall muss ich dir wiederum recht geben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/863111</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/863111</guid><dc:creator><![CDATA[shapeless]]></dc:creator><pubDate>Thu, 01 Sep 2005 18:49:55 GMT</pubDate></item></channel></rss>