| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | Von Digital Twins bis Hochleistungs-Computing: PNY präsentiert seine Zukunftstechnologien für die Industrie von morgen, eine Pressemitteilung
|
Autor
|
Thema: Try-Catch in Verbindung mit If (Problem) (331 mal gelesen)
|
chense Mitglied Konstrukteur

 Beiträge: 75 Registriert: 14.04.2020 Inventor 2019 auf Windows 10 Intel Xeon E5-1630, 3,7Ghz Nvidia Quadro P4000 32GB Ram
|
erstellt am: 30. Jun. 2023 08:58 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, ein besserer Titel ist mir leider nicht eingefallen. Ich habe nachfolgenden Code der in einer Schleife über alle Bauteile einer Baugruppe abläuft Code:
Try If iProperties.Value(oFileInfo.Name, "Project", "Cost Center") = "" Or iProperties.Value(oFileInfo.Name, "Project", "Checked By") = "" Or iProperties.Value(oFileInfo.Name, "Project", "Date Checked") = checkdate0 ThisDoc.Launch(orefdocname) End If Catch MessageBox.Show("Dokument " & orefdocname & " konnte nicht geöffnet werden!" & vbCrLf & "Bitte manuell öffnen!", "Fehler beim Öffnen", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try
Ziel ist es alle Dokumente zu öffnen, denen eine Freigabeinformation fehlt. Das funktioniert auch soweit so gut, allerdings soll die Fehlermeldung nur kommen, wenn eine Datei wirklich nicht geöffnet werden kann (gibt da so ein paar nervige Zukaufteile bei uns die das nicht wollen). Stattdessen habe ich folgendes Verhalten: - Wird in einer lokalen Datei ausgeführt: Funktioniert wie gewünscht - Wird in einer Baugruppe im Netzwerk ausgeführt: Die Fehlermeldung erscheint auch bei jedem Teil das ein Kriterium der IF-Schleife erfüllt und damit nicht geöffnet werden soll ------------------ Für jede Fehlermeldung gibt es eine Lösung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KraBBy Mitglied Maschinenbau-Ingenieur
  
 Beiträge: 736 Registriert: 19.09.2007 Inventor Professional 2020 WinX
|
erstellt am: 30. Jun. 2023 10:24 <-- editieren / zitieren --> Unities abgeben:          Nur für chense
So richtig kapiere ich das noch nicht. Trotzdem versuch ich es mal: Im Grunde bedeutet die Meldung ja auch nur, dass im Try-Block ein Fehler auftrat. Wo genau weiß man erst mal nicht. Also ist mein Vorschlag das Try zu zerstückeln oder auf die Zeile mit .Launch(...) zu beschränken. Dann bekommst Du zumindest eine Fehlermeldung, wenn beim Lesen der iProp was schief geht. etwa:
Code: Dim bToOpen as Boolean = False If iProperties.Value(oFileInfo.Name, "Project", "Cost Center") = "" Then bToOpen = True If iProperties.Value(oFileInfo.Name, "Project", "Checked By") = "" Then bToOpen = True If iProperties.Value(oFileInfo.Name, "Project", "Date Checked") = checkdate0 Then bToOpen = TrueTry If bToOpen then ThisDoc.Launch(orefdocname) Catch ' [...] End Try
------------------ Gruß KraBBy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
      

 Beiträge: 2788 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 30. Jun. 2023 17:28 <-- editieren / zitieren --> Unities abgeben:          Nur für chense
Moin Was ist oFileInfo und was ist orefdocname? Deklaration und Inhalt der Variablen zur Laufzeit kontrollieren. Möglicherweise wird einmal ein UNC-Pfad benutzt und einmal ein gemapptes Laufwerk. Das kann Unterschiede in den Zugriffsrechten bedeuten. Wenn man die Catch Anweisung etwas erweitert bekommt man da auch mehr Infos heraus. Die Möglichkeiten der Exception Klasse findest du hier Code:
Try ..... Catch ex As Exception MessageBox(ex.Message) End Try
------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |