using fängt Ausnahme nicht ab (C#)?

2 Antworten

using fängt keine Exceptions ab.

try {
   ...
} catch (...) {
   ...
}

Fängt Exceptions ab.

using ruft lediglich den Destruktor des Objekts auf, nachdem der Block verlassen wurde.

verwechselst du using mit try catch finally?

kann es sein das dein programm logik nicht sehr logisch ist, lässt sich das u.U. Besser lösen?

Ich möchte gerade ein kleines Programm schreiben für Excel, welches als eine Art Update fungiert um Menübänder einzufügen und wollte fragen ob wer helfen könnt?

Kurz zur Erklärung wie das ablaufen sollte, die neusten Office Programme wenn man sie abspeichert, sind ja alles in allem verpackte Dateien, bei Excel mit Makros wäre dieses Dateiformat eben xlsm. So nun möchte ich dieses via Visual studio öffnen, darin befinden sich dann 3 Ordner und eine xml Datei, so lange keine Menübänder bereits vorhanden sind.

Die 3 Ordner wären: der Relationship Ordner worin eine Rels-Datei ist, welche ich bearbeiten muss, da dort der Pfad zur CustomUI eingegeben wird, der nächste die docProbs und der letzte der xl Ordner - welche jedoch meines wissens nach nicht relevant sind.

Nun muss ich dort einen neuen Ordner erstellen, namens CustomUI und dort dann die XML Datei, also das Menüband, einfügen.

So mein erstes Problem wäre, ob ich das mit Visual Studio 2010 .Net Framework simpel hinbekommen kann, oder eine höheren Version sinnvoll wäre, da ein Problem davon ist das es ZipArchiveEntry und ZipArchive als Datentyp nicht erkennt.

Als Beispiel

Public Sub UpdateCustomUI(ByRef strCustomUI As String)
    'strCustomUI - Pfad und Name der CustomUI-Datei
    Dim bUIFound As Boolean = False
    Dim rels As ZipArchiveEntry = Nothing
    Dim customUI As ZipArchiveEntry = Nothing
    If Not System.IO.File.Exists(strCustomUI) Then
        MsgBox("Datei " & strCustomUI & " nicht gefunden!", MsgBoxStyle.Critical)
        Exit Sub
    End If
    Dim strName As String = System.IO.Path.GetFileName(strCustomUI)
    Using archive As ZipArchive = ZipFile.Open(DocName, ZipArchiveMode.Update)
        For Each entry As ZipArchiveEntry In archive.Entries
            If entry.FullName.EndsWith(strName, StringComparison.OrdinalIgnoreCase) Then
                entry.Delete()
                bUIFound = True
            ElseIf entry.FullName = "_rels/.rels" Then
                rels = entry
            End If
        Next
        If Not bUIFound Then 'CustomUI war noch nicht vorhanden und der Verweis muss eingefügt werden
            If rels Is Nothing Then
                MsgBox("Rels wurde nicht im Archiv gefunden!", vbCritical)
                Exit Sub
            Else
                AddReference(archive, rels)


            End If
        End If
        'Neue CustomUI einfügen
        archive.CreateEntryFromFile(strCustomUI, "customUI\" & strName)
    End Using

End Sub

Also, manuell funktioniert das alles wunderbar, ich schreib die xlsm als zip datei um, entpacke diesen, ändere die Rels Datei, erstelle einen neuen Ordner namens CustomUI und füge dort die xml Datei ein, markiere wieder jeden Ordner, sende sie an zip komprimierte Ordner und benenne diesen wieder um als xlsm Datei, führe diese aus - klickt auf Ansicht einblenden und das Menüband ist vorhanden.

...zur Frage

C# logintextfeld muss @ drinnen sein sonst messagebox?

Ich programmiere ein Loginprogramm und möchte wenn man seine email eingeben soll dass falls kein @ zeichen dabei ist ein fehler zu sehen ist. Wie ?

...zur Frage

Wenn ein Array aus 4 Variablen besteht, ist die Arraylänge dann 3 oder 4?

...zur Frage

C++ , SFML Bildschirmgrenze?

Hallo Community , Ich habe jetzt C++ ganz gut drauf und habe vor ein paar Tagen SFML angefangen , Also habe ich mir heute eine Spielfigur erstellt die man mit W,A,S,D bewegen kann allerdings kann man diese auch ausserhalb des Fensters bewegen was ich nicht möchte , ich möchte dass sie sich am Rand entweder nicht mehr weiter bewegen kann ODER sich woanders hin ,,Teleportiert'' z.b. zu vorher festgelegten Koordinaten .

Über Hilfe wäre ich sehr froh :D

Bild(playermodeltextur : http://www.pic-upload.de/view-29808237/playermodel.png.html

Quellcode :

#include <SFML/Graphics.hpp>
#include <iostream>
using namespace sf;


int main()
{
    sf::RenderWindow window(sf::VideoMode(1920, 1080), "SFML works!");
    //Playermodel Textur erstellen
    Texture Playermodeltextur;

    //Playermodel Textur von Bild laden
    Playermodeltextur.loadFromFile("playermodel.png");

    //Sprite für das Playermodel erstellen
    Sprite Playermodelsprite(Playermodeltextur);

    //Startposition des Playermodels festlegem
    Playermodelsprite.setPosition(400, 300);

    //Festlegen wo der Mittelpunkt des Playermodels ist
    Playermodelsprite.setOrigin(12.5, 12.5);
    
    //Geschwindigkeit festlegen
    Clock clock;
    float speed = 0.5f;

    

    //Schriftart
    Font font;
    font.loadFromFile("comicbd.ttf");
    
    //Testtext
    Text testtext("Ich bin ein Test Text", font , 20);
    testtext.setPosition(400, 0);
    testtext.setOrigin(10, 0);

    
    while (window.isOpen())
    {
        sf::Event event;

        float ElapsedTime = clock.restart().asMilliseconds();
        
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
            //Nach Links bewegen
        }if (Keyboard::isKeyPressed(Keyboard::A))
        {
            Playermodelsprite.move(-speed*ElapsedTime,0.f);
            
        }
            //Nach Rechts bewegen
        if (Keyboard::isKeyPressed(Keyboard::D))
        {   
            Playermodelsprite.move(speed*ElapsedTime,0);
        }
            //Nach Oben bewegen
        if (Keyboard::isKeyPressed(Keyboard::W))
        {
            Playermodelsprite.move(0,-speed*ElapsedTime);
        }
            //Nach Unten bewegen
        if (Keyboard::isKeyPressed(Keyboard::S))
        {
            Playermodelsprite.move(0,speed*ElapsedTime);
        }
        
        //Hintergrundfarbe festlegen ( R,G,B )
        window.clear(Color(0, 13, 56));
        //Playermodel zeichnen
        window.draw(Playermodelsprite);
        //Testtext zeichnen
        window.draw(testtext);
        window.display();
    }

    return 0;
}
...zur Frage

Wieso crasht Minecraft immer mit diesem Fehlercode, und was hat das zu bedeuten?

Hier seht ihr den Fehlercode

14:20:14 launcher Preparing to launch minecraft client for 1.8 14:20:17 launcher Checking installations. 14:20:17 launcher Minecraft client 1.8 is ready to start. 14:20:17 launcher Starting! 14:20:18 launcher Using default game log configuration client-1.7.xml (outputs XML) 14:20:23 bsu Setting user: FireblazeLP 14:20:23 bsu (Session ID is token:ac74c79f2a2640e4abb2e8b640147adc:ad85cfb0f6644bc89ba98da095e3d508) 14:20:24 bsu LWJGL Version: 2.9.1 14:20:25 cvt Reloading ResourceManager: Default, Arestians_Dawn_1.7.zip 16:20:25 game If on Windows, make sure to provide all of the necessary dll's as specified in the twitchsdk README. Also, make sure to set the PATH environment variable to point to the directory containing the dll's. <![CDATA[Couldn't initialize twitch stream]]> 16:20:25 monitor expected < 14:20:25 cza Starting up SoundSystem... 14:20:25 cza Initializing LWJGL OpenAL 14:20:25 cza (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org) 14:20:25 cza OpenAL initialized. 14:20:25 cza Sound engine started 14:20:26 cua Created: 1024x1024 textures-atlas

...zur Frage

C++ Wie kann ich den Benutzter eine Rechenart auswählen lassen. (Konsolen Anwendung)

Also ich bin dabei C++ zu lernen und ich habe schon selber versucht das dass Problem mit einer char Variable zu lösen und dann mehrere if abfragen zu erstellen aber dass funktioniert nicht ganz, außerdem ist es eine Konsolen Anwendung.Kann mir jemand helfen ?

#include <iostream>

using namespace std;

int main(){
char Rechenart;
int Summe1, Summe2, Ergebnis;

cout << "Mit welcher Rechenart wollen sie Rechnen(Multiplikation*)(Divison/)(Addition+)(Subtraktion-)";
cin >> Rechenart;
cout << "Benutzereingabe:";
cin  >> Summe1;
cout << "Benutzereingabe:";
cin  >> Summe2;

Ergebnis = Summe1 * Summe2;

getchar();

std::cout << Summe1 << Rechenart << Summe2
    << " = "
    << Ergebnis
    << std::endl;

if (true)
{
 
}

else
{

}

getchar();
return 0;
}
...zur Frage

Was möchtest Du wissen?