{"id":390,"date":"2015-09-29T13:39:01","date_gmt":"2015-09-29T13:39:01","guid":{"rendered":"http:\/\/coolt.ch\/notizen\/?p=390"},"modified":"2015-09-29T14:57:01","modified_gmt":"2015-09-29T14:57:01","slug":"c-fehlerhandling","status":"publish","type":"post","link":"https:\/\/coolt.ch\/notizen\/c-fehlerhandling\/","title":{"rendered":"C++: Fehlerhandling"},"content":{"rendered":"<p><strong>Errorfunktion selber schreiben<br \/>\n<\/strong><\/p>\n<pre class=\"lang:c++ decode:true\">void <strong>error(<\/strong> std::string message)<strong>{<\/strong>\r\n\u00a0\u00a0\u00a0 std::cout &lt;&lt; message &lt;&lt; \"\\n\";\r\n<strong>}<\/strong> \r\n\r\n\r\n\/\/ im code anderer Funktion\r\nif (input &lt; 0) {\r\n   <strong>error(<\/strong>\"ung\u00fcltiger Wert. \\n\"<strong>)<\/strong>;\r\n}<\/pre>\n<p>Dient zum \u00dcberpr\u00fcfen falscher Argumente<br \/>\n.<\/p>\n<p><strong>Exceptions (Klasse verarbeitet Fehler)<br \/>\n<\/strong><em>Exceptions trennen den Fehlererkennung\u00a0 (in Funktion) vom\u00a0 Verarbeitungsort (main).<br \/>\n<\/em><br \/>\n&#8211; Es wird ein Klasse pro Fehlertyp definiert<br \/>\n.\u00a0 Aufgabe der Klasse: Fehlermeldung werfen<br \/>\n&#8211; Im main werden die Fehlermeldungen global gesamelt<\/p>\n<pre class=\"lang:c++ decode:true\"><strong>\/\/<\/strong> Notwendige Infrastruktur: Leere Fehlerklasse<strong>\r\nclass<\/strong> Zero_Input{  };\r\n\r\n<strong>\/\/ Fehlerdetektion in Funktion<\/strong>\r\nint get_value(){\r\n     if (cin == \"\"  || cin == \"0\"){\r\n         <strong>throw Zero_Input{}<\/strong>;\r\n     }\r\n}\r\n\r\n\/\/ <strong>Fehlerbehandlung aufgrund der Klassen<\/strong>\r\nint main()\r\n<strong>try{<\/strong> \r\n      &lt;code main&gt;\r\n   <strong>}<\/strong>\r\n<strong>catch(<\/strong> Zero_Input <strong>){<\/strong>\r\n      std::<strong>cerr<\/strong>&lt;&lt; \"Ops. Leerer Input \\n\";\r\n      <strong>return 1<\/strong>;\r\n}<\/pre>\n<p>&#8211; main() ist <strong>ohne geschweifte Klammern<\/strong> !<br \/>\n&#8211; Fehlerausgabe auf <strong>std:cerr<\/strong> nicht auf std::cout<br \/>\n&#8211; <strong>Returnwert<\/strong> hat einen Wert <strong>unterschiedlich von 0<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Errorfunktion selber schreiben void error( std::string message){ \u00a0\u00a0\u00a0 std::cout &lt;&lt; message &lt;&lt; &#8222;\\n&#8220;; } \/\/ im code anderer Funktion if (input &lt; 0) { error(&#8222;ung\u00fcltiger Wert. \\n&#8220;); } Dient zum \u00dcberpr\u00fcfen falscher Argumente . Exceptions (Klasse verarbeitet Fehler) Exceptions trennen den Fehlererkennung\u00a0 (in Funktion) vom\u00a0 Verarbeitungsort (main). &#8211; Es wird ein Klasse pro Fehlertyp definiert &hellip; <a href=\"https:\/\/coolt.ch\/notizen\/c-fehlerhandling\/\" class=\"more-link\"><span class=\"screen-reader-text\">C++: Fehlerhandling<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[29],"tags":[43],"_links":{"self":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts\/390"}],"collection":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/comments?post=390"}],"version-history":[{"count":17,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts\/390\/revisions"}],"predecessor-version":[{"id":441,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts\/390\/revisions\/441"}],"wp:attachment":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/media?parent=390"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/categories?post=390"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/tags?post=390"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}