How to get the class instance 'calling' path
Mostra commenti meno recenti
Hi all
I'm working on a class and I have added an error() message to a part of the code. However within my model several instances of the class will be available and I would like to know which instance is throwing the error. How can I find the instance 'calling' path (see red rectangle) within the class itself?

Risposta accettata
Più risposte (2)
Pratyush
il 25 Ott 2023
Hi Ludo,
I understand that you have added an error message in your class and you want to know which instance of the class has generated the error.
In MATLAB, you can use the "dbstack" function to obtain the call stack information, including the calling path within the class. You can refer to the following documentation for more information: https://in.mathworks.com/help/matlab/ref/dbstack.html
Here is an example how "dbstack" could be used to get the instance that throws the error:
classdef MyClass
properties
name
end
methods
function obj = MyClass(name)
obj.name = name;
end
function error(obj)
stack = dbstack();
calling_path = stack(1);
disp(['Error occurred in instance ''' obj.name ''' at line ' num2str(calling_path.line) ' in file ' calling_path.file]);
end
end
end
Hope this helps.
1 Commento
Ludo Houben
il 25 Ott 2023
Ludo Houben
il 26 Ott 2023
Categorie
Scopri di più su Simulink Environment Customization in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!