model_error¶
A single model that raises/returns an error.
C Version¶
Model Code:
1int main(int argc, char *argv[]) {
2 // Return a non-zero value to indicate an error
3 return -1;
4}
5
Model YAML:
1---
2
3model:
4 name: model_error_c
5 driver: GCCModelDriver
6 args: ./src/model_error.c # compile the C code with necessary libraries
7
8 inputs:
9 - name: inFile
10 driver: FileInputDriver
11 args: ./Input/input.txt
12 - name: model_errorQueueIn
13 driver: InputDriver
14 args: model_errorQueue
15
16 outputs:
17 - name: model_errorQueueOut
18 driver: OutputDriver
19 args: model_errorQueue
20 - name: outFile
21 driver: FileOutputDriver
22 args: output_model_error.txt
23 in_temp: True
C++ Version¶
Model Code:
1#include <YggInterface.hpp>
2
3int main(int argc, char *argv[]) {
4 // This must be set to prevent dialog box on windows for unhandled exception
5#ifdef _WIN32
6 SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX);
7 _set_abort_behavior(0,_WRITE_ABORT_MSG);
8#endif
9 // Throw an error or return a non-zero value to indicate an error
10 throw "Test error";
11 return -1;
12}
Model YAML:
1---
2
3model:
4 name: model_error_cpp
5 driver: GCCModelDriver
6 args: ./src/model_error.cpp
7
8 inputs:
9 - name: inFile
10 driver: FileInputDriver
11 args: ./Input/input.txt
12 - name: model_errorQueueIn
13 driver: InputDriver
14 args: model_errorQueue
15
16 outputs:
17 - name: model_errorQueueOut
18 driver: OutputDriver
19 args: model_errorQueue
20 - name: outFile
21 driver: FileOutputDriver
22 args: output_model_error.txt
23 in_temp: True
Fortran Version¶
Model Code:
1program main
2 stop 1
3end program main
Model YAML:
1---
2
3model:
4 name: model_error_fortran
5 driver: FortranModelDriver
6 args: ./src/model_error.f90 # Runs the fortran script using default fortran compiler
7
8 inputs:
9 - name: inFile
10 driver: FileInputDriver
11 args: ./Input/input.txt
12 - name: model_errorQueueIn
13 driver: InputDriver
14 args: model_errorQueue
15
16 outputs:
17 - name: model_errorQueueOut
18 driver: OutputDriver
19 args: model_errorQueue
20 - name: outFile
21 driver: FileOutputDriver
22 args: output_model_error.txt
23 in_temp: True
Julia Version¶
Model Code:
1error("Test error")
Model YAML:
1---
2
3model:
4 name: model_error_julia
5 driver: JuliaModelDriver
6 args: ./src/model_error.jl # Runs the R script using default R
7
8 inputs:
9 - name: inFile
10 driver: FileInputDriver
11 args: ./Input/input.txt
12 - name: model_errorQueueIn
13 driver: InputDriver
14 args: model_errorQueue
15
16 outputs:
17 - name: model_errorQueueOut
18 driver: OutputDriver
19 args: model_errorQueue
20 - name: outFile
21 driver: FileOutputDriver
22 args: output_model_error.txt
23 in_temp: True
Matlab Version¶
Model Code:
1% Raise an error or return non-zero value
2error('Test error');
Model YAML:
1---
2
3model:
4 name: model_error_matlab
5 driver: MatlabModelDriver
6 args: ./src/model_error.m # Runs the matlab script using Matlab engine
7
8 inputs:
9 - name: inFile
10 driver: FileInputDriver
11 args: ./Input/input.txt
12 - name: model_errorQueueIn
13 driver: InputDriver
14 args: model_errorQueue
15
16 outputs:
17 - name: model_errorQueueOut
18 driver: OutputDriver
19 args: model_errorQueue
20 - name: outFile
21 driver: FileOutputDriver
22 args: output_model_error.txt
23 in_temp: True
Python Version¶
Model Code:
1
2def runerror():
3 # Raise exception or return non-zero value to indicate an error
4 raise Exception("Test error")
5
6
7if __name__ == '__main__':
8 runerror()
Model YAML:
1---
2
3model:
4 name: model_error_python
5 driver: PythonModelDriver
6 args: ./src/model_error.py # Runs the python script using default python
7
8 inputs:
9 - name: inFile
10 driver: FileInputDriver
11 args: ./Input/input.txt
12 - name: model_errorQueueIn
13 driver: InputDriver
14 args: model_errorQueue
15
16 outputs:
17 - name: model_errorQueueOut
18 driver: OutputDriver
19 args: model_errorQueue
20 - name: outFile
21 driver: FileOutputDriver
22 args: output_model_error.txt
23 in_temp: True
R Version¶
Model Code:
1stop("Test error")
Model YAML:
1---
2
3model:
4 name: model_error_R
5 driver: RModelDriver
6 args: ./src/model_error.R # Runs the R script using default R
7
8 inputs:
9 - name: inFile
10 driver: FileInputDriver
11 args: ./Input/input.txt
12 - name: model_errorQueueIn
13 driver: InputDriver
14 args: model_errorQueue
15
16 outputs:
17 - name: model_errorQueueOut
18 driver: OutputDriver
19 args: model_errorQueue
20 - name: outFile
21 driver: FileOutputDriver
22 args: output_model_error.txt
23 in_temp: True