# Paraview architecture and design question

**URL:** https://discourse.paraview.org/t/paraview-architecture-and-design-question/3743
**Category:** ParaView Support
**Created:** [March 4, 2020, 4:04am UTC](https://discourse.paraview.org/t/paraview-architecture-and-design-question/3743 "2020-03-04T04:04:19Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![kayarre](https://discourse.paraview.org/user_avatar/discourse.paraview.org/kayarre/32/1994_2.png) [@kayarre](https://discourse.paraview.org/u/kayarre)
#### Post date: [March 4, 2020, 4:04am UTC](https://discourse.paraview.org/t/paraview-architecture-and-design-question/3743/1 "2020-03-04T04:04:19Z")

</div>

What is the error handling architecture in Paraview and what design goals does the implementation attempt to achieve? and how does it work with the lower level libraries, remote modules etc. What are the warts and gems?

How does Paraview handle errors in filters? Where should I look in the source code to understand how it is implemented?

I am curious as I am working with a team that has a sophisticated fortran code that they want to build a GUI for. It seems like there is a sticking point with being able to separate the gui from the underlying functionality. (also not a lot of format gui computer science background)

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.paraview.org/user_avatar/discourse.paraview.org/mwestphal/32/17_2.png) [@mwestphal](https://discourse.paraview.org/u/mwestphal)
#### Post date: [March 4, 2020, 7:48am UTC](https://discourse.paraview.org/t/paraview-architecture-and-design-question/3743/2 "2020-03-04T07:48:48Z")

</div>

> What is the error handling architecture in Paraview

Multi-layered, see below.

> what design goals does the implementation attempt to achieve?

Show errors and warnings to the user without being an hassle for the dev

> How does Paraview handle errors in filters?

vtkErrorMacro output is recovered by the vtkLogger, which transmit to the pqOutputWidget.

> Where should I look in the source code to understand how it is implemented?

vtkSetGet::vtkErrorMacro  
vtkLogger.h  
pqOutputWidget.h
