In reference to the first question, I think it often comes down to the information you have about the underlying uncertainty. If you only have intervals or ranges, robust is the way to go. If you have all of the distributional information (or assume it), stochastic programming is an option. As @TheSimpliFire mentioned, you can include risk measures in stochastic programming formulations to consider risk.
As a note, another option that's becoming more popular is distributionally-robust optimization [1]. The information required is in between robust optimization and stochastic programming. Here, you consider an "ambiguity set" of all of the possible distributions your data could be and optimize your objective hedging against the worst-case distribution.
[1] Delage E, Ye Y (2010) Distributionally Robust Optimization Under Moment Uncertainty with Application to Data-Driven Problems. Oper. Res. 58(3):595–612. Reference
[1] Delage E, Ye Y (2010) Distributionally Robust Optimization Under Moment Uncertainty with Application to Data-Driven Problems. Oper. Res. 58(3):595–612.